将参数以交互方式传递给交互式程序
我有一个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
这将使用是作为所有是/否提示的答案。