當我運行下面的bash腳本時,它永遠不會打印「再見!」。 似乎dummy函數中的return語句會導致bash腳本結束,離開左腳本不執行。爲什麼return語句在函數中會導致bash腳本結束
#!/bin/bash -ex
dummy() {
if [ $1 -eq 0 ] ; then
return 0
else
return 55
fi
}
dummy 0
echo "when input 0, dummy will return $?"
dummy 50
echo "when input 50, dummy will return $?"
echo "bye!"
輸出:
+ dummy 0
+ '[' 0 -eq 0 ']'
+ return 0
+ echo 'when input 0, dummy will return 0'
when input 0, dummy will return 0
+ dummy 50
+ '[' 50 -eq 0 ']'
+ return 55
我在gnu bash手冊中找不到-e選項。你不會碰巧有一個參考鏈接,我可以閱讀/瞭解它嗎? –
感謝神聖怪人,這是非常有幫助 – leon
@Qsp這是在bash手冊中,「深埋」在選項中的深處。在bash shell中運行以查看相關段落:man bash | col -b | grep -A3'OPTIONS';男人bash | col -b | grep -A 2 - '-e *退出' – holygeek