2

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

我使用了该yes | ./script命令并且它有效,它会自动回答yes所有问题。但是,我想回答no最后一个问题。有没有办法回答yes前 4 个问题和第no5 个问题?

4

4 回答 4

4

以这种方式或直接从文件中提供您的答案stdin

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

(使用yyes取决于您的脚本所期望的 - 可能只是“ y”和“ n”就足够了,因为yes程序可以工作)。

对于更复杂的任务,您最终可能会考虑使用Expect维基百科页面)之类的东西

于 2013-07-18T14:00:56.597 回答
1

这个基本技巧可能适用于您的情况:

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

或者

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

但这取决于您的脚本如何处理输入流...

于 2013-07-18T14:00:53.597 回答
0
{ yes yes | sed 4q; yes no | sed 1q; } | ./script  # or just "echo no"

或者

yes yes | sed -e 5s/yes/no/ -e 5q
于 2013-07-18T14:07:07.763 回答
0
while ((++c<5)); do echo "y"; done ; echo "n" | ./script
于 2013-07-18T14:16:44.720 回答