使用 bash 调用另一个 shell 脚本并指定输入



我正在尝试使用 bash 调用另一个 shell 脚本,但是此脚本不接受任何命令行参数。相反,它会运行,检查一些内容,然后提示用户输入,如下所示:

Checking....done
Please enter ID #: (user input here)

可以这样做吗?

尝试这样的事情:

echo "My id" | ./script
Checking... done
Please enter ID: My id

./script << EOF
My_id
another input
EOF
Checking... done
Please enter ID: My_id
<blah>
Please enter something: anoter input

解决方案是使用 expect .

#!/usr/bin/expect
spawn php /path/to/script
expect "ID #: "
send "{ID#}r"
interact

参考:在 bash 脚本中模拟用户输入

如果你有一个输入要馈送,那么回声就足够了,

echo "input" | ./script.sh

如果您有超过 1 个输入,那么期望很好,并且是唯一的选择,

如上所述记录脚本,然后运行它

期望样本期望.expec

相关内容

  • 没有找到相关文章

最新更新