取得遠端執行程序的return code - Linux

Table of Contents


我想要利用ssh在遠端跑一個程式,
並且取得他結束執行時的return code(這邊我用個程式會回傳-1),
我試著這樣子寫:

a=`ssh user@host ~/program`
結果a出來是空的,用ssh -v檢查顯示
debug1: Exit status 255
但是我輸入 echo $? 後結果卻是0

另外我也試了像這樣的指令:
a=`ssh user@host "~/program || echo fail"`
結果a還是空的,但是fail有印出來

a=$()和a=``我都有測試過,結果都和上面的一樣,
想問問看有沒有辦法用ssh遠端執行的方法取得程式結束的回傳值?

(我的shell是用bash, 發行版是ubuntu 12.04)

--

All Comments

Kristin avatarKristin2012-11-09
a=`cmd ...` 是把 cmd ... 的 stdout 結果存到 a 吧?
Tracy avatarTracy2012-11-12
嗯 但是我的a沒有東西 fail直接印出來
Puput avatarPuput2012-11-15
echo $? 出來是 0 應該是因為「存到 a」這動作是成功的