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英語Head (Unix)指令配合用以產生大型檔案供一些測試工作使用。如指令

   % yes 1234567 | head -1000 > file

可產生一份有1000行的檔案,其中每行都有8字元(1,2,3,4,5,6,7與換行)。

2006年,yes指令因用於測試MacBook有否受間歇性關機問題影響而出名。在Mac OS XTerminal執行兩次yes指令可將電腦CPU負載提升到最大,從而檢查間歇性關機錯誤是否是散熱問題造成。[1][2]

參考資料

  1. ^ Test for MacBook Random Shutdown Syndrome (RSS). 2006-08-29 [2012-05-09]. (原始內容存檔於2014-11-13). 
  2. ^ Testing your MacBook for Random Shut Downs. the apple files. 2006-08-02 [2008-01-16]. (原始內容存檔於2007-02-10). 

外部連結