我想为别人的bash脚本创建一个答案文件。运行bash脚本时,第一次安装软件时会向您询问5个问题。
我使用yes | ./script
命令并且它有效,它会自动回答yes
所有问题。但是,我想回答no
的最后一个问题。有没有办法回答yes
前4个问题,no
回答第5个问题?
答案 0 :(得分:4)
以这种方式或从文件直接提供您的答案stdin
./script << EOF
yes
yes
yes
yes
no
EOF
(使用y
或yes
取决于您的脚本所期望的内容 - 可能只是“y
”和“n
”就足够yes
程序工作)。
对于更复杂的任务,您最终可能会考虑使用Expect(wikipedia page)
之类的内容答案 1 :(得分:1)
这个基本技巧可能适合你的情况:
echo -e "y\ny\ny\ny\nn" | ./script
或
echo -e "yes\nyes\nyes\nyes\nno" | ./script
但这取决于脚本处理输入流的方式......
答案 2 :(得分:0)
{ yes yes | sed 4q; yes no | sed 1q; } | ./script # or just "echo no"
或
yes yes | sed -e 5s/yes/no/ -e 5q
答案 3 :(得分:0)
while ((++c<5)); do echo "y"; done ; echo "n" | ./script