将参数以交互方式传递给交互式程序

我有一个bash脚本,它使用read命令交互地read命令参数,例如yes / no选项。 有没有办法在非交互式的脚本中调用这个脚本来传递默认的选项值作为参数?

这不只是一个选项,我必须传递给交互式脚本。

expect更复杂的任务( http://en.wikipedia.org/wiki/Expect )。 它基本上模拟一个用户,你可以编写一个脚本如何反应特定的程序输出和相关的东西。

这也适用于像ssh这样的情况,禁止pipe道密码。

很多方法

pipe你的input

 echo "yes no maybe" | your_program 

从文件redirect

 your_program < answers.txt 

使用这里的文件 (这可以是非常可读的)

 your_program << ANSWERS yes no maybe ANSWERS 

使用这里的string

 your_program <<< $'yes\nno\nmaybe\n' 

你可以把数据放在一个文件中,像这样重新指定它:

 $ cat file.sh #!/bin/bash read x read y echo $x echo $y 

脚本的数据:

 $ cat data.txt 2 3 

执行脚本:

 $ file.sh < data.txt 2 3 

只是想添加一个方法。 在其他地方find它,很简单。 假设我想通过命令行的命令“execute_command”的所有提示是,然后我只是pipe道是。

 yes | execute_command 

这将使用是作为所有是/否提示的答案。