我有一个 bash 脚本,它使用read
命令以交互方式读取命令的参数,例如是/否选项。有没有办法在将默认选项值作为参数传递的非交互式脚本中调用此脚本?
这不仅仅是我必须传递给交互式脚本的一个选项。
我有一个 bash 脚本,它使用read
命令以交互方式读取命令的参数,例如是/否选项。有没有办法在将默认选项值作为参数传递的非交互式脚本中调用此脚本?
这不仅仅是我必须传递给交互式脚本的一个选项。
对于更复杂的任务,有expect
( http://en.wikipedia.org/wiki/Expect )。它基本上模拟了一个用户,你可以编写一个脚本来对特定的程序输出和相关的东西做出反应。
这也适用于ssh
禁止向其输入密码的情况。
您可以将数据放在文件中并像这样重新定向它:
$ cat file.sh
#!/bin/bash
read x
read y
echo $x
echo $y
脚本数据:
$ cat data.txt
2
3
执行脚本:
$ file.sh < data.txt
2
3
只是想再添加一种方式。在别处找到的,很简单。假设我想在命令行中为命令“execute_command”的所有提示传递“是”,然后我只需将“是”传递给它。
yes | execute_command
这将使用是作为所有是/否提示的答案。
您还可以使用 printf 将输入通过管道传输到您的脚本。
var=val
printf "yes\nno\nmaybe\n$var\n" | ./your_script.sh