1

しばらくの間、どちらをやろうとしているかわからないことが2つあり、ばかげているように聞こえて申し訳ありませんが、オプションAまたはBが押されたときにコードを統合する場所がわかりません。サブメニューに「オプションAが選択されました」と表示されますサブ見出しをループして「オプションA/Bが選択されました」と表示されたら、サブメニュー画面に戻る方法もわかりません。メインメニューに戻るときにメインメニューに戻るボタンを押すまで。私はこれに不慣れで、特にこのビットに苦労しているので、助けていただければ幸いです、ありがとう!

4

2 に答える 2

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
> 
于 2013-03-14T19:07:28.817 に答える
0

タスクを単純化する 1 つの方法は、各メニューを独自の機能に保持することです。各メニューは、ユーザーが終了キーを押すまでループします。この場合、「x」が使用されます。私のバッシュはしません

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
于 2013-03-14T18:57:42.857 に答える