Linux shell yes命令(不停输出换行的y)(不停输出换行的指定字符串)(脚本自动确认y)

文章目录

    • yes命令功能
    • doc文档
      • 英文
      • 中文翻译
        • 完整文档
    • 示例
    • 应用案例
      • 自动为脚本多次确认y

yes命令功能

yes命令可以不断地输出换行的指定字符串,不加参数时,不断输出换行的“y”,有时我们需要执行一些需要用户键入“y”确认的脚本,但是我们希望执行时能自动确认,这时yes命令就能帮上我们的忙。

doc文档

yes --help

英文

Usage: yes [STRING]...
  or:  yes OPTION
Repeatedly output a line with all specified STRING(s), or 'y'.

      --help     display this help and exit
      --version  output version information and exit

GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
Full documentation at: <https://www.gnu.org/software/coreutils/yes>
or available locally via: info '(coreutils) yes invocation'

中文翻译

用法:yes [字符串]...
  或者:yes 选项
不断重复输出一行,包含所有指定的字符串,或者输出 'y'--help     显示此帮助信息并退出
      --version  输出版本信息并退出

GNU coreutils 在线帮助:<https://www.gnu.org/software/coreutils/>
完整文档请参考:<https://www.gnu.org/software/coreutils/yes>
或者在本地通过 info '(coreutils) yes invocation' 查看。

完整文档

https://www.gnu.org/software/coreutils/yes

Linux shell yes命令(不停输出换行的y)(不停输出换行的指定字符串)(脚本自动确认y)_第1张图片

15.3 yes: Print a string until interrupted
yes prints the command line arguments, separated by spaces and followed by a newline, forever until it is killed. If no arguments are given, it prints ‘y’ followed by a newline forever until killed.
Upon a write error, yes exits with status ‘1’.
The only options are a lone --help or --version. To output an argument that begins with ‘-’, precede it with --, e.g., ‘yes – --help’. See Common options.

yes:打印字符串直到被中断
yes 打印命令行参数,用空格分隔,并在末尾加上换行符,一直打印直到被终止。如果没有给出参数,则一直打印 ‘y’,并在末尾加上换行符,直到被终止。
在写入错误时,yes 以状态码 ‘1’ 退出。
唯一的选项是单独的 --help 或 --version。要输出以 ‘-’ 开头的参数,请在其前面加上 --,例如,‘yes – --help’。请参阅常见选项。

示例

执行yes "y"后,打印出了一连串不断换行的”y“:

Linux shell yes命令(不停输出换行的y)(不停输出换行的指定字符串)(脚本自动确认y)_第2张图片

执行yes "hello",打印出了一连串的换行“hello”:

Linux shell yes命令(不停输出换行的y)(不停输出换行的指定字符串)(脚本自动确认y)_第3张图片

以空格分隔,不断重复打印任意组合的换行字符串,如:yes hello world !

Linux shell yes命令(不停输出换行的y)(不停输出换行的指定字符串)(脚本自动确认y)_第4张图片

应用案例

自动为脚本多次确认y

比如我有一个脚本,执行时可能会让用户确认“y”,代码片段和展示效果如下:

Linux shell yes命令(不停输出换行的y)(不停输出换行的指定字符串)(脚本自动确认y)_第5张图片
Linux shell yes命令(不停输出换行的y)(不停输出换行的指定字符串)(脚本自动确认y)_第6张图片

Linux shell yes命令(不停输出换行的y)(不停输出换行的指定字符串)(脚本自动确认y)_第7张图片
Linux shell yes命令(不停输出换行的y)(不停输出换行的指定字符串)(脚本自动确认y)_第8张图片
Linux shell yes命令(不停输出换行的y)(不停输出换行的指定字符串)(脚本自动确认y)_第9张图片
Linux shell yes命令(不停输出换行的y)(不停输出换行的指定字符串)(脚本自动确认y)_第10张图片

用户可能需要多次键入“y”,才能执行完脚本,如果用户一个字母也不想敲,可以这样:

yes | ./your_script.sh

或者:

yes "y" | ./your_script.sh

(或者yes y | ./your_script.sh,注意:单个参数时参数加不加引号都一样,但是如果脚本有时解析多个参数,脚本逻辑不同可能导致最终结果不同)

这将生成连续的y输入,并将其作为输入传递给脚本。

我执行:

yes | ./install_arm_ubuntu.sh

可以看到,我的脚本完全不用确认,就咔咔一直往下走,直到结束了:

Linux shell yes命令(不停输出换行的y)(不停输出换行的指定字符串)(脚本自动确认y)_第11张图片

你可能感兴趣的:(shell,linux,linux,运维,服务器)