Linux / Unix 命令:是

Linux / Unix 命令:是

我在 Ubuntu 终端中发出了一个命令,要求我输入“yes”,但我发现它只在第一次询问我,但在我意识到之前我已经按了回车键。所以我以为会出现“命令未找到”消息,但我得到的却是一连串的“y”。这似乎是它唯一能做的事情,所以我想知道这个命令的意义是什么,为什么它会输出“y”?(Ubuntu 11.10)

答案1

很久以前(SySV 时代及更早),该fsck命令没有-y-n选项。该命令会以交互方式要求您更改数百或数千个项目,并期望得到“y”或“n”。yes创建该命令是为了通过管道传输到 fsck 和其他一些程序,以便能够重复回答交互式问题(再次说明,这是 SysV 时代,远在 Tcl 和 Expect 之前)。该yes程序非常符合 UNIX 哲学:小型程序可以很好地完成特定任务并与其他程序协同工作。

答案2

维基百科

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

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

答案3

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

Linux / Unix 命令:是

命令库

姓名

是 - 重复输出字符串直至被杀死

概要

是 [STRING]... 是 OPTION

描述

重复输出包含所有指定字符串的行,或者“y”。

--help 显示此帮助并退出 --version 输出版本信息并退出
也可以看看

yes 的完整文档以 Texinfo 手册的形式保存。如果您的站点正确安装了 info 和 yes 程序,则命令

info yes

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

在我看来,当您必须通过按“y”键反复授权进程/脚本中的某项操作时,使用“yes”命令听起来很合逻辑。这可以通过取消程序执行来控制。

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

答案4

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

相关内容