shell 脚本-while 循环,处理异常

shell 脚本-while 循环,处理异常

我正在运行一个带有 while 循环的 shell 脚本,它因以下错误而退出,我该如何避免它或捕获错误并让循环继续?即我该如何处理异常

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 的控制权,并完全使用 stdin。这意味着它会读取数据,$hfile这又意味着在循环一次迭代后,while 结束。

您可以使用-n切换到 ssh 来解决此问题。

ssh -n -l gger $hostname ". <us...

-n 从 /dev/null 重定向 stdin(实际上,阻止从 stdin 读取)...

相关内容