2

我正在 linux 中制作一个新的菜单驱动 Shell 脚本,我已将我的表格简化为 hello and bye 以使其更简单,下面是我的基本菜单布局

# Menu Shell Script
#
echo ----------------
echo     menu
echo ----------------
echo [1] hello
echo [2] bye
echo [3] exit
echo ----------------

基本上我有菜单,我最近一直在玩一些东西,但似乎无法让任何工作,因为我是新手,我想下一行将是

`read -p "Please Select A Number: " menu_choice`

但我不确定如何处理变量,而不知道如何处理。我想知道是否有人可以帮助我编写下一段代码,以便在我按下 1 时简单地让它打个招呼,当按下 2 时再见,当用户按下 3 时退出 3。我将不胜感激几天来一直在尝试不同的方法,但似乎无法让它发挥作用。

4

2 回答 2

2

你不需要那些反引号echo...read

echo "----------------"
echo "    menu"
echo "----------------"
echo "[1] hello"
echo "[2] bye"
echo "[3] exit"
echo "----------------"

read -p "Please Select A Number: " mc
if [[ "$mc" == "1" ]]; then
    echo "hello"
elif [[ "$mc" == "2" ]]; then
    echo "bye"
else
    echo "exit"
fi

编辑

showMenu(){

echo "----------------"
echo "    menu"
echo "----------------"
echo "[1] hello"
echo "[2] bye"
echo "[3] exit"
echo "----------------"

read -p "Please Select A Number: " mc
return $mc
}


while [[ "$m" != "3" ]]
do
    if [[ "$m" == "1" ]]; then
        echo "hello"

    elif [[ "$m" == "2" ]]; then
        echo "bye"
    fi
    showMenu
    m=$?
done

exit 0;
于 2013-03-13T13:37:32.163 回答
0

这是一个示例

if [ $menu_choice -eq 1 ]
then
    echo hello
elif [ $menu_choice -eq 2 ]
then
    echo bye
elif [ $menu_choice -eq 3 ]
then
    exit 0
fi

或使用案例

case $menu_choice in
    1) echo hello
       ;;
    2) echo bye
       ;;
    3) exit 0
       ;;
esac
于 2013-03-13T13:29:54.937 回答