我有一个带有ssh命令的shell脚本来执行一些操作,
$SSH $user@$remoteIpAddress "sudo rm -rf $remoteLocation/xxx/*; cd $remoteLocation/yyy; .... ... "
目录$ remoteLocation / yyy不可用,它将显示错误
./ test.sh:line 6:cd:/ opt / test / yyy:没有这样的文件或目录
它正在进入下一行。我的方案是,如果ssh中的任何命令返回非零值,则退出shell脚本本身。我可以添加set -e从shell退出,但我不知道如何在ssh中处理它。提前谢谢。
编辑:
我在SSH命令下面有几行命令。我需要一个完全退出脚本的解决方案,而不是执行ssh命令下面的任何行。
答案 0 :(得分:1)
请注意,您的set -e
提示同样适用于您使用ssh在另一端打开的shell。因此,您可以在其前面添加ssh命令,以确保错误终止ssh会话:
$SSH $user@$remoteIpAddress "set -e; sudo rm -rf $remoteLocation/xxx/*; cd $remoteLocation/yyy; .... ... "
然后,一旦遇到错误,ssh shell将以非零错误代码退出,如果您的脚本中有set -e
,则脚本也会退出。