Приведенный ниже скрипт сломается при первой команде ssh. Не выдает ошибку, но прерывает цикл while. Отладка сценария с помощью set -vx
покажет, что read -r line
не читает ничего из итерируемой переменной.
Как только я закомментирую строку ssh, она будет работать успешно и перебирать весь цикл.
Можете ли вы помочь разгадать тайну здесь?
Спасибо!
Сценарий:
#!/bin/bash
set -vx
file_list=$(cat <<EOT
aaa
bbbb
ccccc
dddddd
eeeeeee
EOT
)
while read -r line; do
echo ${line}
ssh 192.168.100.222 touch /tmp/${line}
done <<< "${file_list}"
Вывод с закомментированной строкой ssh (set -vx
здесь опущен)
aaa
bbbb
ccccc
dddddd
eeeeeee
Вывод с включенной строкой ssh
aaa