Сценарий оболочки - цикл while обрабатывает исключение
Я запускаю сценарий оболочки с циклом while, и он завершается с указанной ниже ошибкой. Как я могу избежать его или перехватить ошибку и позволить циклу продолжиться? т.е. как я мог обработать исключение
stty: standard input: Invalid argument
Ниже приведен скрипт, который я пытаюсь выполнить, но он выходит из цикла после первой итерации.
hfile=/tmp/prty.txt
while read property
do
hostname=`echo $property | awk '{print $1}'`
echo $hostname
ssh -l gger $hostname ". <userhome>/.bash_profile; ggsci -v; exit << EOF > /tmp/gg.txt
EOF"
done < $hfile
file hfile
==========
user1 pas1
user2 pas2
user3 pas3
1 ответ
Теперь, когда у меня было больше кофеина, я вижу, что сообщение об ошибке - красная сельдь.
В тот момент, когда вы выполняете ssh, он получает контроль над stdin, который он будет полностью использовать. Это означает, что он будет читать данные из $hfile
что, в свою очередь, означает, что после одной итерации цикла время while заканчивается.
Вы можете использовать -n
переключитесь на ssh, чтобы решить эту проблему.
ssh -n -l gger $hostname ". <us...
-n Перенаправляет стандартный ввод из / dev / null (фактически предотвращает чтение из стандартного ввода)...