我正在运行一个 bash 脚本,但是当它到达必须进行选择的菜单时,进程会冻结。我理解对于“是”,我可以在命令中使用 -y,但是在以下情况下:
我需要从选项列表中选择/输入一个数字
输入姓名或电子邮件
我怎样才能做到这一点?
奇怪的是,大多数搜索结果都返回如何使用 bash 创建菜单,但没有返回如何让脚本输入选择/值。
答案1
您只需将答案通过管道传输至命令即可:
printf "bot\nn\nJava" | ./questions.sh
或者expect
像这样使用:
#!/usr/bin/expect -f
set timeout -1
spawn ../4/questions.sh
expect "Your name: "
send -- "expect\n"
expect "Are you human?\r
y/n: "
send -- "n\r"
expect "What is your favorite programming language?\r
Your answer: "
send -- "Java\r"
expect eof
更多信息请点击此处 https://www.baeldung.com/linux/bash-interactive-prompts