2011-12-07 66 views
6

如果我調用的命令(在我的情況下,另一個腳本)使用xterm像這樣:如何獲取命令的退出代碼而不是xterm?

xterm -e sh second.sh 

的xterm返回後在$?值是的xterm(通常爲我0),而不是我的腳本的退出狀態碼。

有無論如何得到我的腳本退出狀態代碼?

回答

5

你可以做這樣的事情:

statusfile=$(mktemp) 
xterm -e sh -c 'yourcommand; echo $? > '$statusfile 
status=$(cat $statusfile) 
rm $statusfile 

yourcommand退出狀態正處於變化status

+2

+1。似乎沒有辦法讓'xterm'直接報告命令的狀態。 –

+0

爲了測試,我創建了一個只是'退出0'的腳本。然後我調用這個腳本而不是你的命令。退出代碼總是127.如果我用例如'sleep 10'取代你的命令,那麼退出代碼是正確的:S – neildeadman

+0

忽略我...得到它的工作..謝謝! – neildeadman

相關問題