当我尝试获取SSH远程命令退出代码时,发现了一个奇怪的错误。 我不明白为什么会得到不同的结果以及如何解释它。 有人可以指出我做错了什么还是捕获远程ssh命令退出状态的更好方法。感谢任何帮助。
本地命令:
ssh_test/test.sh; echo $?;
+ exit 1
1
ssh命令:(Ubuntu 18.04)
ssh 127.0.0.1 "ssh_test/test.sh; echo $?"
+ exit 1
0
test.sh
#!/bin/bash
set -x
exit 1
答案 0 :(得分:1)
0是从echo
命令返回的退出代码。如果您将退出代码分配给变量,则可以阻止该变量被echo
的结果掩盖。
答案 1 :(得分:0)
我应该使用单引号将双引号引起来。 回声$?如果我在执行ssh命令时使用双引号将变为“ 0”。
ssh 127.0.0.1 'ssh_test/test.sh; echo $?'