当我执行以下命令时,它会给出预期的输出,但是当我在远程服务器上运行相同的命令时,它总是echo $?
给出0
。
locally
# <some command>
# echo $?
Remotely
# ssh server " <some command >; echo $? "
现在,如果发生远程执行,我总是会得到0
输出echo $?
。
答案1
在将命令发送到远程计算机之前,将$?
评估 。实际上,您正在发送命令echo 0
。尝试
ssh server ' <some command >; echo $? '
正如迈克尔·汉普顿 (Michael Hampton) 指出的那样,单引号会阻止在将变量等发送到远程命令之前对其进行评估,而双引号则允许这样做。