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

SSH Remote command exit code always get 0

我在尝试获取 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 是从 echo 命令返回的退出代码。如果将退出代码分配给变量,这可以阻止它被 echo.

的结果屏蔽

我应该用单引号转成双引号。 回声$?如果我用双引号来执行ssh命令,就会变成“0”。

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