2013-07-18 133 views
2

我想为某人elses bash脚本创建应答文件。当您运行bash脚本时,首次安装软件时会询问5个问题。为bash脚本创建应答文件

我用yes | ./script命令,它的工作原理,它自动回答所有问题yes。但是,我想回答最后一个问题no。有没有办法回答前面4个问题的yes,以及no到第五个?

+5

YES YES YES YES没有。 – fedorqui

回答

1

这个基本的技巧可以工作你的情况:

echo -e "y\ny\ny\ny\nn"   | ./script 

echo -e "yes\nyes\nyes\nyes\nno" | ./script 

但它取决于你的脚本如何处理输入流...

+1

唯一可行的通用答案。谢谢。 – sebnukem

4

提供你的答案这种方式或从文件直接到stdin

./script << EOF 
yes 
yes 
yes 
yes 
no 
EOF 

(使用yyes,取决于您的脚本将会发生什么 - 可能只是“y”和“n”就足够了,因为yes程序工作)。

对于更复杂的任务,你最终可能会考虑使用类似Expectwikipedia page

0
{ yes yes | sed 4q; yes no | sed 1q; } | ./script # or just "echo no" 

yes yes | sed -e 5s/yes/no/ -e 5q 
0
while ((++c<5)); do echo "y"; done ; echo "n" | ./script