当我调试ssh时,我发现“注销”的返回值是他​​先前的命令。例如,

[server1 ~] $ ssh root@server2

/* login server2 from server1 */

[root@server2 ~]# it's an bad command

-bash: it: command not found

[root@server2 ~]# echo $?

127

/* the return value is 127 */

[root@server2 ~]# it's an bad command

-bash: it: command not found

[root@server2 ~]# logout

Connection to server1 closed.

[server1 ~ ]$ echo $?

127

/* the return value is 127 too */


谁能告诉我为什么以这种方式设置注销的返回值?

最佳答案

答案应该很明显:脚本。

考虑不使用ssh的典型情况,例如:

grep -q crap file
if [ $? -eq 0 ]; then
    echo something something
fi


如果您突然需要在远程计算机上执行grep,但想对本地计算机上的结果执行操作,则只需在grep命令前加上ssh调用即可,一切都会好起来的。

关于linux - “登出”的返回值是他​​先前命令的返回值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44344885/

10-12 07:32