Я пытаюсь просмотреть несколько известных каталогов на удаленных машинах и найти последнюю полную папку для резервного копирования. Можно предположить, что я начинаю с массива путей в стиле SCP, например, host:/path/to/dir
for path in ${paths[@]}
do
IFS=':' read host backupDir <<< "$path"
result=`ssh "$host" 'basename $(find '"$backupDir"'/* -type d -maxdepth 1)'`
echo "$result"
readarray -t backups <<<"$result"
echo "$backups"
for backup in "$backups"
do
echo 1
echo "$backup"
done
done
echo "$result"
предполагает, что результаты SSH соответствуют ожидаемым, перечисляя несколько имен папок, по одному на строку.
Однако, echo $backups
показывает только первую папку, и, конечно, внутренний цикл аналогично отражает только одну запись в массиве $ backups. Я пробовал readarray
, я пробовал read -a
конструкции с различными настройками IFS, но что-то ускользает от меня о том, как правильно обработать вывод из запроса SSH.