use*_*645 3 scripting bash shell-scripting
当我执行如下命令时,它会按预期给我一个输出,但是当我在远程服务器上运行相同的命令时,它总是给我echo $?作为0.
locally
# <some command>
# echo $?
Remotely
# ssh server " <some command >; echo $? "
Run Code Online (Sandbox Code Playgroud)
现在,在远程执行的情况下,我总是得到0的echo $?输出。
Sve*_*ven 10
在$?之前的命令被发送到远程计算机进行评价。实际上,您正在发送命令echo 0。尝试
ssh server ' <some command >; echo $? '
Run Code Online (Sandbox Code Playgroud)
正如迈克尔汉普顿指出的那样,单引号可以防止在将变量发送到远程命令之前评估变量等,而双引号允许这样做。
| 归档时间: |
|
| 查看次数: |
824 次 |
| 最近记录: |