Unix 新手,想要创建一个简单的用户输入来重新启动或离开程序

Unix 新手,想要创建一个简单的用户输入来重新启动或离开程序

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


参考

特殊参数

if 条件句

while 循环

相关内容