Linux SSH远程命令退出代码始终获取0
我在尝试获取SSH远程命令退出代码时发现了一个奇怪的错误。 我不明白为什么它会得到不同的结果,以及如何解释它。 有人能指出我做错了什么,或者有更好的方法来捕获远程ssh命令的退出状态吗。谢谢你的帮助 本地指挥部:Linux SSH远程命令退出代码始终获取0,linux,bash,shell,ssh,exit-code,Linux,Bash,Shell,Ssh,Exit Code,我在尝试获取SSH远程命令退出代码时发现了一个奇怪的错误。 我不明白为什么它会得到不同的结果,以及如何解释它。 有人能指出我做错了什么,或者有更好的方法来捕获远程ssh命令的退出状态吗。谢谢你的帮助 本地指挥部: ssh_test/test.sh;echo$ +退出1 1 ssh命令:(ubuntu18.04) ssh 127.0.0.1“ssh_test/test.sh;echo$?” +退出1 0 test.sh #/bin/bash 集合x 出口1 0是从echo命令返回的退出代码。如果您
ssh_test/test.sh;echo$代码>
+退出1
1
ssh命令:(ubuntu18.04)
ssh 127.0.0.1“ssh_test/test.sh;echo$?”
+退出1
0
test.sh
#/bin/bash
集合x
出口1
0是从echo
命令返回的退出代码。如果您将退出代码分配给变量,这可以防止它被echo
的结果掩盖。我应该使用单引号来表示双引号。
回声$?如果我使用双引号执行ssh命令,则将变为“0”
ssh 127.0.0.1'ssh_test/test.sh;echo$?'
只是一个猜测,在没有-e
的情况下尝试,我通过“echo${PIPESTATUS[0]}”)获得了退出代码,但是在远程SSH环境中运行该命令的结果不同。我已经做了另一个测试来重现错误,结果仍然是不同的事件,我没有使用echo命令。