SSH远程命令退出代码始终为0

时间:2020-05-13 10:25:04

标签: linux bash shell ssh exit-code

当我尝试获取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

2 个答案:

答案 0 :(得分:1)

0是从echo命令返回的退出代码。如果您将退出代码分配给变量,则可以阻止该变量被echo的结果掩盖。

答案 1 :(得分:0)

我应该使用单引号将双引号引起来。 回声$?如果我在执行ssh命令时使用双引号将变为“ 0”。

ssh 127.0.0.1 'ssh_test/test.sh; echo $?'