当我调试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 */
有谁能告诉我为什么注销的返回值是这样设置的?
答案 0 :(得分:1)
答案应该是显而易见的:用于编写脚本。
考虑一下没有ssh的典型事情,比如说:
grep -q crap file
if [ $? -eq 0 ]; then
echo something something
fi
如果您突然需要在远程计算机上执行grep,但想要对本地计算机上的结果执行操作,则可以使用ssh调用为grep命令添加前缀,一切都会正常。