选择案例菜单不起作用

时间:2017-05-28 07:58:59

标签: bash unix select scripting switch-statement

我有以下选择菜单。

#!/bin/bash
PS3='Please enter your choice(1-4): '
options=("First Install" "Add cilent" "Delete Cilent" "Quit")
select opt in "${options[@]}"
do
    case $opt in
        "First Install")
            newinstall
            break
            ;;
        "Add cilent")
            add_client
            break
            ;;
        "Delete Cilent")
            delete_client
            break
            ;;
        "Quit")
            break
            ;;
        *) echo invalid option;;
    esac
done

问题在于,当我输入2时,我会收到invalid option消息,而所有其他情况都有效。

1 个答案:

答案 0 :(得分:1)

为了避免拼写错误,我建议在代码中只使用一次数组options的字符串。将"First Install")替换为"${options[0]}"),将"Add cilent")替换为"${options[1]}")等。

#!/bin/bash

PS3='Please enter your choice(1-4): '
options=("First Install" "Add cilent" "Delete Cilent" "Quit")

select opt in "${options[@]}"
do
  case $opt in
    "${options[0]}")
        newinstall
        break
        ;;
    "${options[1]}")
        add_client
        break
        ;;
    "${options[2]}")
        delete_client
        break
        ;;
    "${options[3]}")
        break
        ;;
    *) echo invalid option;;
  esac
done