![Unix 新手,想要创建一个简单的用户输入来重新启动或离开程序](https://linux22.com/image/131924/Unix%20%E6%96%B0%E6%89%8B%EF%BC%8C%E6%83%B3%E8%A6%81%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AA%E7%AE%80%E5%8D%95%E7%9A%84%E7%94%A8%E6%88%B7%E8%BE%93%E5%85%A5%E6%9D%A5%E9%87%8D%E6%96%B0%E5%90%AF%E5%8A%A8%E6%88%96%E7%A6%BB%E5%BC%80%E7%A8%8B%E5%BA%8F%20.png)
我正在制作一个程序,想要一个简单的回显,询问用户是否想再次订购,或离开该程序。它位于 Unix 上的 Shell 中
该程序是简单的回显和读取点餐变量。你想要什么食物,多少KG等等,最后都总结出来了。
现在我希望程序询问用户是否要“再次订购?”,但我不知道如何在输入重新启动程序时添加“是”或“否”的 if 语句,或者如果他们说“不”则退出程序。
任何帮助表示赞赏。听起来很简单,但我在网上找不到任何帮助。
答案1
我想你想要这样的东西:
#!/bin/sh
read -rp 'Fish or chicken? ' protein
read -rp 'Beans or rice? ' starch
read -rp 'Broccoli or asparagus? ' veggie
read -rp 'Beer or beer? ' drink
echo "You have ordered the $protein with a side of $starch and $veggie, and to drink you will have $drink"
while true; do
read -rp 'Would you like to order again? ' order
if echo "order" | grep -iq 'yes'; then
exec $0
elif echo "order" | grep -iq 'no'; then
exit 0
fi
done
read
是一个 shell 内置命令,将从标准输入中读取。通过-p
开关,它将“提示”用户并设置默认REPLY
变量或指定变量(蛋白质、淀粉、蔬菜、饮料等)
$0
是一个 shell 特殊参数,它将扩展为脚本中 shell 的名称 脚本的名称
如果用户回答“您想再次订购吗?”然后yes
脚本将再次执行,否则将退出。