为交互式脚本在第二个case语句中分配值时出错

时间:2014-01-10 01:25:23

标签: bash

我正在尝试编写用户交互式脚本。我是通过让用户键入标志的值来实现的。我的第一个案例陈述工作正常但第二个案件不会,我不明白为什么?在这段代码的最后两行中,我想看到我的变量的值,但我只能看到第一个语句中的赋值,而第二个case语句没有给我任何值。我的代码中有更多的case语句,但第一个是唯一有效的。我需要在两种陈述之间做些什么吗?

echo "`tput bold`What machine was used?`tput sgr0`"
select Machine in "M1" "M2" "M3" "M4" "M5" "quit"
do
        case $Machine in
                M1) version=10;;
                M2|M5) version=15;;
                M4|M3) version=27;;
                quit) exit;;
                *) echo -e '\033[5;31;40mERROR: \033[0m\033[31;40mWrong option.\033[0m';;
        esac
        break
done


echo "`tput bold`Do you want to run default settings`tput sgr0`"
select settings in "yes" "no" "quit"
do
        case $settings in
                yes) run=1;;
                no) run=0;;
                quit) exit;;
                *) echo -e '\033[5;31;40mERROR: \033[0m\033[31;40mWrong option.\033[0m';;
        esac
        break
done

echo "Version: $version"
echo "Default settings: $run"

1 个答案:

答案 0 :(得分:1)

这应该可以正常工作。如果你为每个选项按1,你会得到

Version: 10
Default settings: 1

您是否习惯性地按y代替1来回答“是”?