对于case语句Bash中的循环

时间:2015-05-23 02:00:33

标签: for-loop switch-statement

我目前有一个案例陈述,其中我定义了每个选项0-10,但我发现它杂乱无章。我认为使用for循环会起作用,但是当我说,选择选项1时,它会给出正确的输出,但也会列出几个"无效选项..

PS3='Please enter your choice: '
    options=("${var[@]}" "Quit")
select opt in "${options[@]}"
do
    case $opt in
        "${var[0]}")
            echo "${cmd[0]}"
                ;;
        "${var[1]}")
            echo "${cmd[1]}"
                ;;
        "${var[2]}")
            echo "${cmd[2]}"
                ;;
        "${var[3]}")
            echo "${cmd[3]}"
                ;;
        "${var[4]}")
            echo "${cmd[4]}"
                ;;
        "${var[5]}")
            echo "${cmd[5]}"
                ;;
        "${var[6]}")
            echo "${cmd[6]}"
                ;;
        "${var[7]}")
            echo "${cmd[7]}"
                ;;
        "${var[8]}")
            echo "${cmd[8]}"
                ;;
        "${var[8]}")
            echo "${cmd[8]}"
                ;;
        "${var[9]}")
            echo "${cmd[9]}"
                ;;
        "${var[10]}")
            echo "${cmd[10]}"
                ;;

        "Quit")
            break
            ;;
        *) echo invalid option;;
    esac
done
done

这是我试过的:

 PS3='Please enter your choice: '
options=("${var[@]}" "Quit")
select opt in "${options[@]}"
do
for (( i=0; i<=10; i++ )) ; do
    case $opt in
        "${var[${i}]}")
            echo "${cmd[${i}]}"
                ;;
        "Quit")
            break
            ;;
        *) echo invalid option;;
    esac
done
done

也许我只是错误地使用了for循环,我们非常感谢任何指导!

0 个答案:

没有答案