yes (Unix)
yes是一個Unix指令,會不斷輸出表示確定的回應(或用戶指定的字串)直到程式被結束。
描述
yes先輸出「y」或者任何以指令列參數形式給出的字串,再輸出一個換行,並反覆過程直到用戶終止或程式遭終止。當作為管道接入其他指令時,程式在管道斷開時結束(例如當另一程式完成執行時)。
此指令也用於測試系統處理高負載的能力,因為yes會導致單處理器系統的處理器使用率維持在100%(對於多核心系統,進程必須為每個處理器執行),故可用於調查系統的冷卻系統可否在處理器負載維持在100%時運作暢順。
使用
yes可在需要用戶應答的程式輸出表示確定的回應(也可以輸出否定的回應,如指令「yes n」),這樣就可以使需要用戶交互的指令以非交互形式運行。
這用法或許今天已經過時,因為大多詢問用戶回應的指令都有「force」參數(如「rm -f」)或「assume-yes」參數(如Debian及其衍生系統的「apt-get -y」)
例如以下指令
% rm -f *.txt
與以下指令
% yes | rm *.txt
效果一樣。
yes指令也常與head指令配合用以產生大型文件供一些測試工作使用。如指令
% yes 1234567 | head -1000 > file
可產生一份有1000行的文件,其中每行都有8字元(1,2,3,4,5,6,7與換行)。
2006年,yes指令因用於測試MacBook有否受間歇性關機問題影響而出名。在Mac OS X的Terminal執行兩次yes指令可將電腦CPU負載提升到最大,從而檢查間歇性關機錯誤是否是散熱問題造成。[1][2]
參考資料
- ^ Test for MacBook Random Shutdown Syndrome (RSS). 2006-08-29 [2012-05-09]. (原始內容存檔於2014-11-13).
- ^ Testing your MacBook for Random Shut Downs. the apple files. 2006-08-02 [2008-01-16]. (原始內容存檔於2007-02-10).