Я не уверен, что понимаю Ваш вопрос, но в самом простом случае, где у Вас есть разделенные пробелом столбцы текста и никаких пробелов в полях, Вы могли сделать:
echo "col1 col2 col3 col4" | while read one two three four; do echo "$two"; done
while read [variable names]
цикл оболочки автоматически разделит свой вход в пробеле в столько переменных, сколько Вы даете.
scp -P PORT "$(hostname).$1-dump-$DATE.backup.gz.aes" USER@HOST:"/backups/$(hostname)/"
Scp поддерживает копирование файлов с одного удаленного хоста на другой, и синтаксис для этого состоит в том, чтобы указать как источник, так и место назначения, используя синтаксис «hostname: filename»:
scp srchost:/src/file desthost:/dest/file
В имени исходного файла есть двоеточие, поэтому scp пытается проанализировать его как имя хоста и имя файла удаленного файла.
Вы можете запретить scp обрабатывать аргумент исходного файла как удаленное имя файла, убедившись, что в аргументе перед первым двоеточием стоит символ «/». Имена хостов не могут содержать «/», а scp перестает искать двоеточия в аргументе командной строки после первого «/». Это должно сработать:
scp -P PORT "./$(hostname).$1-dump-$DATE.backup.gz.aes" USER@HOST:"/backups/$(hostname)/"
^^-- Prepend a ref to the current directory