系統

結束代碼(exit code)

結束代碼(exit code)是一個程式結束時交還回來的那一個數字——它用來說「這次順利完成」或者「出了點問題」。按照一條幾乎人人都遵守的約定,0 表示成功,其他任何值(1、2、127……)都表示某種失敗。這是程式臨走前的最後一句話。

你很少見到它,因為它不會被印出來——而是悄悄留給下一個程式去讀。在 shell 裡,你可以在某條命令剛跑完後用 $? 偷看一眼;或者乾脆把命令串起來:「build && deploy」只有在 build 以 0 結束時才會執行 deploy,因為 && 的意思就是「而且只有在它成功時」。

正是這個不起眼的數字,讓自動化得以運轉。當 CI 說你的建置「失敗了」,真正發生的其實是某一步以非零結束代碼結束,而流水線注意到了。電腦讀不懂你的測試輸出,但它永遠讀得懂一個 0。

$ grep "TODO" notes.txt
$ echo $?
1            # 1 = grep found nothing; 0 would mean it did

$? 保存著上一條命令的結束代碼——這裡是「沒找到匹配」。

「0 = 成功」一開始會覺得反常——把它想成「零個問題」,而不是「零個完成」就順了。

又稱
exit statusreturn codestatus codeerrorlevel$?