“logout”的返回值是他​​之前命令的返回值

时间:2017-06-03 14:20:37

标签: linux bash ssh logout

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

[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 */

有谁能告诉我为什么注销的返回值是这样设置的?

1 个答案:

答案 0 :(得分:1)

答案应该是显而易见的:用于编写脚本。

考虑一下没有ssh的典型事情,比如说:

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

如果您突然需要在远程计算机上执行grep,但想要对本地计算机上的结果执行操作,则可以使用ssh调用为grep命令添加前缀,一切都会正常。