2017-07-26 107 views
0

我想從另一個shell腳本(B)運行一個shell腳本(A)。爲了測試目的,shell腳本(A)將總是拋出異常/錯誤(僅用於測試)。我試圖在運行該腳本後立即獲取退出狀態代碼。執行shell腳本的退出狀態碼

代碼:

殼體1:

errormsg=$(sample.sh 2>&1) 
if [ $? -ne 0 ] 
then 
echo $? 
echo "Successful." 
else 
echo $? 
echo "Error." 

輸出:

0 
Successful 

殼體2:

errormsg=$(sample.sh 2>&1) 
echo $? 
if [ $? -ne 0 ] 
then 
echo $? 
echo "Successful." 
else 
echo $? 
echo "Error." 

輸出:

1 
1 
Error 

爲什麼產量有差異?案例1中的輸出不應該是'錯誤'嗎?

回答

0

$?總是給出最後執行的命令的結果。

在案例1中,這是你的外部腳本,但如果二是echo $?

這就是爲什麼你會得到不同的結果

+0

找到了解決辦法。不管怎麼說,還是要謝謝你。 –