我正在尝试使用 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