Bri*_*ell 29
yes no | <command>
Run Code Online (Sandbox Code Playgroud)
<command>您要回答的命令在哪里no.
(或者yes n如果你真的需要输出一个n)
默认情况下,该yes命令输出连续的流y,以便对每个提示回答"是".但是你可以传入任何其他字符串作为参数,以便它重复每个提示.
作为由"只是有人"指出,yes实际上不规范.虽然它可用于我曾经使用的每个系统(各种BSD,Mac OS X,Linux,Solaris,Cygwin),如果你以某种方式设法找到它没有的系统,以下应该可以工作:
while true; do echo no; done | <command>
Run Code Online (Sandbox Code Playgroud)
或者作为一个完整的shell脚本实现yes,您可以使用以下内容:
#!/bin/sh
if [ $# -ge 1 ]
then
while true; do echo "$1"; done
else
while true; do echo y; done
fi
Run Code Online (Sandbox Code Playgroud)
实际上,它看起来很有趣......
$ yes no
Run Code Online (Sandbox Code Playgroud)
联机帮助页摘录:
$ man yes
YES(1) BSD General Commands Manual YES(1)
NAME
yes -- be repetitively affirmative
SYNOPSIS
yes [expletive]
DESCRIPTION
yes outputs expletive, or, by default, ``y'', forever.
...
Run Code Online (Sandbox Code Playgroud)
对于没有此类命令的系统,只需简单的 echo 即可
echo "no" | command
Run Code Online (Sandbox Code Playgroud)
对于重复,制作一个永远持续的 while/for 循环并不难。