小智 48
yes 可用于向任何命令发送肯定(或否定;例如 yes n)响应,否则会请求一个命令,从而导致命令以非交互方式运行。
yes 命令与 head 命令结合使用,可用于生成大容量文件以供测试。
它还可用于测试系统处理高负载的情况,因为对于具有单处理器的系统(对于多处理器系统,必须为每个处理器运行一个进程),使用 yes 会导致 100% 的处理器使用率。例如,这对于调查系统的冷却系统在处理器以 100% 运行时是否有效很有用。
2006 年,yes 命令作为一种测试用户的 MacBook 是否受到间歇性关机综合症影响的方法而广为人知。通过在 Mac OS X 下通过终端运行两次 yes 命令,用户能够最大化他们计算机的 CPU,从而查看故障是否与热量有关
通过维基百科:http : //en.wikipedia.org/wiki/Yes_(Unix)
Fed*_*oni 20
这可能是一个有争议的意见,但在我看来,这是对命令行工具中不良用户界面的丑陋修复。
一些命令行工具通过提示向用户提问,并且没有非交互式运行的选项;想象一下,例如
$ frobnicate *
frobnicate file a.txt? (y/n) y
frobnicate file b.txt? (y/n) y
...
Run Code Online (Sandbox Code Playgroud)
由于问题的答案来自标准输入,因此快速解决此问题的方法是使用一个y\n连续输出字符串的应用程序,而这正是yes它所做的。Unix管道可用于将此输出作为给定命令的输入发送。
$ yes | frobnicate
Run Code Online (Sandbox Code Playgroud)
这种方法的问题之一是yes无法检查它正在回答的问题:
frobnicate file a.txt? (y/n) y
frobnicate file b.txt? (y/n) y
format device /dev/sda1? (y/n) y
frobnicate file c.txt? (y/n) y
Run Code Online (Sandbox Code Playgroud)
更好的解决方案(如果可用)是非交互式运行的特定选项,例如rm -f或apt-get -y。这允许在应用程序中编写更明智的行为。
小智 5
我喜欢yes在解压缩多个 .zip 文件时使用,这些文件都包含同名的同一个文件,我被问到在每种情况下该怎么做(例如许可协议)。
yes | for z in *.zip; do unzip "$z"; done
Run Code Online (Sandbox Code Playgroud)