use*_*887 96 linux bash scripting
我使用Amazon Linux实例,我有几个脚本来填充数据并安装我使用的所有程序,但是有几个程序要求:
Do you want to continue [Y/n]?
Run Code Online (Sandbox Code Playgroud)
并暂停安装.我想在所有情况下自动回答"Y",我现在才确定如何做到这一点.
P.T*_*.T. 181
在"是"命令将呼应"Y"(或任何你问它)无限期.用它作为:
yes | command-that-asks-for-input
Run Code Online (Sandbox Code Playgroud)
或者,如果需要资本'Y':
yes Y | command-that-asks-for-input
Run Code Online (Sandbox Code Playgroud)
Nat*_*ese 15
您可能无法在目标服务器上安装Expect.当一个人写一个詹金斯的工作时,通常就是这种情况.
如果是这样,我会考虑像askubuntu.com上的以下答案:
https://askubuntu.com/questions/338857/automatically-enter-input-in-command-line
printf 'y\nyes\nno\nmaybe\n' | ./script_that_needs_user_input
Run Code Online (Sandbox Code Playgroud)
请注意,在极少数情况下,该命令不要求用户在字符后按Enter键.在这种情况下,请删除换行符:
printf 'yyy' | ./script_that_needs_user_input
Run Code Online (Sandbox Code Playgroud)
为了完整起见,您还可以使用此处的文档:
./script_that_needs_user_input << EOF
y
y
y
EOF
Run Code Online (Sandbox Code Playgroud)
或者如果你的shell支持这里的字符串:
./script <<< "y
y
y
"
Run Code Online (Sandbox Code Playgroud)
或者您可以创建一个每行一个输入的文件:
./script < inputfile
Run Code Online (Sandbox Code Playgroud)
同样,这个答案的所有功劳都归到了askubuntu.com,lesmana 上答案的作者.