我用两个case语句制作了一个bash脚本,用于创建菜单及其后续子菜单。
我的主菜单结构如下:在此,任何选择都将重定向到子菜单功能。
Main-menu() {
select INPUT in "Apple" "Banana" "Kiwi" "Coconut" "Pasta" "Exit"
do
case $INPUT in
"Apple") echo "You selected: $INPUT";SubMenu;;
"Banana") echo "You selected: $INPUT";SubMenu;;
"Kiwi") echo "You selected: $INPUT";SubMenu;;
"Coconut") echo "You selected: $INPUT";SubMenu;;
"Pasta") echo "You selected: $INPUT";SubMenu;;
"Exit") echo "Goodbye..";exit;;
*) echo -e "Please enter valid number";;
esac
done
}
字符串
我的子菜单结构类似:这里,选择被重定向到函数(FruitType等)。
SubMenu() {
echo "Which Category should this be under? Select from options below: [F,N,D,E]"
select type in "Fruits" "Nuts" "Dinner" "Exit"
do
case $type in
"Fruits") echo "You selected: $type";FruitType;;
"Nuts") echo "You selected: $type";NutsType;;
"Dinner") echo "You selected: $type";DinnerType;;
"Exit") echo "Goodbye..";exit;;
*) echo -e "Please enter a valid letter";;
esac
done
}
型
这里的问题是针对我的子菜单。我需要有[F,N,D,E]作为我的输入选项,但它显示数字选项[1,2,3,4]。
我已经看到了OPTARG的一些例子和选项如下:
while getopts u:p: option; do
case $option in
u) user=$OPTARG;;
p) pass=$OPTARG;;
esac
done
型
但在这里,我必须输入-u而不是u作为我的输入。也不会显示选项。我需要有子菜单选项显示和字母作为输入。
有什么想法吗
1条答案
按热度按时间y4ekin9u1#
select
被硬编码为使用数字,但你可以只使用read -p
而不使用它:字符串