什么是“是”命令?


29

我在Ubuntu终端中发出了一个命令,要求我键入yes,但是我发现它只在第一次问我,但是在意识到之前我已经按了Enter键。因此,我希望收到“找不到命令”消息,但是却收到了永无休止的“ y”流。这似乎是它唯一要做的事情,所以我想知道此命令的意义是什么,为什么它输出“ y”?(Ubuntu 11.10)

Answers:


14

来自维基百科

本身,yes命令输出“ y”或指定为参数的任何内容,然后重复换行,直到被用户停止或以其他方式终止为止;当通过管道传递给命令时,它将继续直到管道中断(即程序完成其执行)。

它还可以用于测试系统处理高负载的能力,因为对于单个处理器的系统,使用yes会导致100%的处理器使用率(对于多处理器系统,必须为每个处理器运行一个进程)。例如,这对于调查当处理器以100%运行时系统的冷却系统是否有效将很有用。


30

很久以前(SySV天或更早),该fsck命令没有-y-n选项。该命令将以交互方式要求您更改成百上千个项目,并期望输入“ y”或“ n”。yes创建该命令是为了将其传递给fsck,以及一些其他程序可以重复回答交互式问题(同样,这是SysV天,早于Tcl和Expect)。该yes程序非常符合UNIX的哲学:小型程序可以很好地完成特定的任务并与其他程序一起工作。


4

基于此处提供的信息:http : //linux.about.com/library/cmd/blcmdl1_yes.htm

Linux / Unix命令:是

命令库

名称

是-重复输出一个字符串直到被杀死

概要

是[STRING] ...是选项

描述

重复输出所有指定的STRING或“ y”的行。

--help显示帮助并退出版本输出版本信息并退出
另请参阅

完整的yes文档保留为Texinfo手册。如果在您的站点上正确安装了info和yes程序,则该命令

info yes

应该使您可以访问完整的手册。

以我的拙见,当您必须通过按“ y”键重复授权某个过程/脚本中的某些内容时,“ yes”命令的用法听起来很逻辑。可以通过取消程序执行来控制。

无论如何,其他人可能有使用此命令的经验。


我没有很多Linux经验,如何在进程/脚本中使用“ yes”命令?
格雷格·特雷里文


1

yes命令将打印其参数,如果该参数为空,则显示“ y”,直到结束程序或关闭其输出管道为止。它可以与需要重复输入的程序一起使用,例如rm -i。


1
如果使用yes删除所有内容,为什么还要进行迭代rm?
fromnaboo

@fromnaboo我知道这是一个不好的例子。但是有时您无权访问必须使用的程序的内部工作,因此可以帮助您避免无休止地重复相同的输入。
丹尼尔·库尔曼

@fromnaboo增加机器的净正值。
沃尔夫
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.