Answers:
在“是”命令将回声“Y”(或任何你问它)无限期。用作:
yes | command-that-asks-for-input
或者,如果要求大写字母“ Y”:
yes Y | command-that-asks-for-input
yes
因为它会最大限度地利用CPU。 stackoverflow.com/a/18164007/720665
-y
bash脚本的是HARD。
/dev/null
STDOUT)时才如此。通过管道传递给命令时,每次接收命令读取到一条命令时,它将仅向管道写入一行,否则将等待。
echo y | command
应该管用。
另外,某些安装程序具有“自动赞成”标志。它是-y
用于apt-get
在Ubuntu。
-f
(--force
)标志,对于删除某些内容的命令,它的作用是“自动”
您可能无法在目标服务器上安装Expect。当有人写一份詹金斯的工作时,通常就是这种情况。
如果是这样,我会在askubuntu.com上考虑类似以下内容的答案:
/ubuntu/338857/automatically-enter-input-in-command-line
printf 'y\nyes\nno\nmaybe\n' | ./script_that_needs_user_input
请注意,在极少数情况下,该命令不需要用户在字符后按Enter。在这种情况下,请省略换行符:
printf 'yyy' | ./script_that_needs_user_input
为了完整起见,您还可以使用here文档:
./script_that_needs_user_input << EOF
y
y
y
EOF
或者,如果您的外壳支持此字符串,则为:
./script <<< "y
y
y
"
或者,您可以创建一个文件,每行一个输入:
./script < inputfile
同样,此答案的全部功劳归于 Lesmana 在askubuntu.com上的答案作者。
您只需要-y
使用install命令即可。
例如: yum install <package_to_install> -y
如果您只想接受默认值,则可以使用:
\n | ./shell_being_run
bash
,sh
最系统,这是我知道的,你需要echo
的\n
,否则它不会通过管道输送到下一个命令。
--noprompt
或--noconfirm
标志。