Linux上的菜单和子菜单脚本

时间:2013-03-14 18:30:55

标签: linux bash loops menu

有两件事我不确定我曾经尝试做了一段时间而且我很抱歉听起来很愚蠢,但我不知道在哪里整合代码以便在选项A或B时按子菜单按下“选项A选中” 我也不确定如何循环子标题,以便当它说“选项A / B被选中”时它返回到子菜单屏幕。直到我按回到主菜单按钮,它将进入主菜单。我非常感谢任何帮助,因为我是新手,特别是在这方面苦苦挣扎,谢谢!

2 个答案:

答案 0 :(得分:1)

另一种方法:

select x in submenu1 submenu2 exit ; do
    [[ $x == exit ]] && exit 0
    select y in optionA optionB; do
        echo "submenu $y heading"
        echo "$x selected"
        break
    done
done

实施例

1) submenu1
2) submenu2
3) exit
> 1
1) optionA
2) optionB
> 1
submenu optionA heading
submenu1 selected
> 

答案 1 :(得分:0)

简化任务的一种方法是将每个菜单保存在自己的功能中。每个菜单都会循环,直到用户按下退出键。在这种情况下,使用'x'。我的bash没有

function subopt1
{
   subopt1=""
   while [ "$subopt1" != "x" ]
   do
      echo Sub Menu 1 Heading
      echo Option A
      echo Option B
      echo x Back to Main Menu
      read -p "Select sub option1" subopt1
   done
 }

 function subopt2
 {
     subopt2=""
     while [ "$subopt2" != "x" ]
     do
         echo Sub Menu 2 Heading
         echo Option A
         echo Option B
         echo x Back to Main Menu
         read -p "Select sub-option2" subopt2    
     done
 }

 function mainopt
 {
    opt=""
    while [ "$opt" != "x" ]
    do
        echo Menu Heading
        echo Sub Menu 1
        echo Sub Menu 2
        read -p "Select Otion: " opt
        if [ "$opt" = "1" ]; then
             subopt1
        elif [ "$opt" = "2" ]; then
             subopt2
        elif [ "$opt" = "x" ];then
             break
        fi
   done
}

mainopt