我想我可以這樣寫我自己作爲內置的Bash總是會失敗,並顯示特定的錯誤代碼?
unrollme-dev-dan:~ Dan$ echo 'exit [email protected]' > fail
unrollme-dev-dan:~ Dan$ chmod +x fail
unrollme-dev-dan:~ Dan$ ./fail 42
unrollme-dev-dan:~ Dan$ echo $?
42
是否有一個內置的,做這個? exit
當然不會起作用,因爲它會退出當前進程,不會創建子進程並退出該進程。 test
是我發現簡單獲取0
或1
作爲返回碼的最簡單方法。
與http://httpstat.us/類似,我需要單元測試特定的錯誤代碼。這對谷歌來說非常困難,因爲大多數結果都是爲了處理錯誤,而不是造成錯誤。
好,我一直在想什麼,做括號,除了亂了我的裏grep我忘了報價。 – djechlin
圓括號創建一個子shell,它實際上是一個子進程(除了'ksh'中的一些奇怪異常外)。這是一個新的過程,可以保護您不受各種方式影響父進程的影響,但對於此用例而言,它僅比函數稍微貴一些。 – kojiro