2017-06-03 56 views
-1

當我調試ssh時,我發現「註銷」的返回值是他​​以前的命令。例如,「註銷」的返回值是他​​以前命令的返回值

[server1 ~] $ ssh [email protected] 

/* login server2 from server1 */ 

[[email protected] ~]# it's an bad command 

-bash: it: command not found 

[[email protected] ~]# echo $? 

127 

/* the return value is 127 */ 

[[email protected] ~]# it's an bad command 

-bash: it: command not found 

[[email protected] ~]# logout 

Connection to server1 closed. 

[server1 ~ ]$ echo $? 

127 

/* the return value is 127 too */ 

誰能告訴我爲什麼退出的返回值是這樣設置的?

+0

用四個空格前綴代碼。請看[編輯幫助](http://stackoverflow.com/editing-help)。 – Cyrus

回答

1

答案應該很明顯:適用於腳本。

考慮一個典型的東西,不使用SSH的事,說:

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

如果你突然需要在遠程機器上執行的grep,但要對結果起作用的本地機器上,你可以前綴上grep命令與ssh調用和一切都會好起來的。