我试图使用本地shell脚本在远程服务器上运行shell脚本。当远程shell脚本发生错误时,我必须停止本地shell脚本。
我像这样通过ssh运行远程shell脚本。
##parent shell script##
#!/bin/bash -ex
scp remote_shell.sh ${host}:${path}
ssh ${host} '${path}/remote_shell.sh ; rm ${path}/remote_shell.sh'
..do something##remote_shell.sh##
#!/bin/bash -ex
..do something
..error occurred
exit 1问题是,当remote_shell.sh使用1退出时,父shell不会停止。
我在本地(没有ssh)上尝试了这个脚本,而父脚本正如我所期望的那样停止了。这个问题与第三行“;”操作符有关吗?(无论发生什么故障,我都必须删除remote_shell.sh文件。)
当然,我可以用一些其他代码来实现这一点,但是我想让它变得简单..
发布于 2019-06-06 03:28:29
使用
ssh ${host} '${path}/remote_shell.sh'或
ssh ${host} '${path}/remote_shell.sh ; R=$?; rm ${path}/remote_shell.sh; exit $R'或者其他保存退出代码的方法
https://unix.stackexchange.com/questions/523180
复制相似问题