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英语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). 

外部链接

[编辑]