我正在制作一个程序,想要一个简单的回显,询问用户是否想再次订购,或离开该程序。它位于 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
脚本将再次执行,否则将退出。