ユーザーが選択できるさまざまなオプションを含むメニューを作成していますが、行が10個に達するとモードが変わります。数字10は2桁なので、当然パターンが異なります。行ごとに1桁のパターンを維持するために、各行が9に達するとすぐに新しい行を開始できるようにしたいです。例 1 は現在の出力です。このソリューションをどのように実装しますか?
Example 1 Desired output
1) 1) 1)
2) 2) 2)
.) .) .
.) .) .
9) 9) 9)
10)
私のコード例
echo -e "${MENU}*********************************************${NORMAL}"
echo -e "${MENU}**${NUMBER} 1)${MENU} Option 1) ${NORMAL}"
echo -e "${MENU}**${NUMBER} 2)${MENU} Option 2) ${NORMAL}"
echo -e "${MENU}**${NUMBER} 3)${MENU} Option 3) ${NORMAL}"
echo -e "${MENU}**${NUMBER} 4)${MENU} Option 4) ${NORMAL}"
echo -e "${MENU}**${NUMBER} 5)${MENU} Option 5) ${NORMAL}"
echo -e "${MENU}**${NUMBER} 6)${MENU} Option 6) ${NORMAL}"
echo -e "${MENU}**${NUMBER} 7)${MENU} Option 7) ${NORMAL}"
echo -e "${MENU}**${NUMBER} 8)${MENU} Option 8)${NORMAL}"
echo -e "${MENU}**${NUMBER} 9)${MENU} Option 9) ${NORMAL}"
echo -e "${MENU}**${NUMBER} 10)${MENU} Option10) ${NORMAL}"
echo -e "${MENU}**${NUMBER} 11)${MENU} Option11) ${NORMAL}"
echo -e "${MENU}*********************************************${NORMAL}"
echo -e "${ENTER_LINE}Please enter a menu option and enter or ${RED_TEXT}enter to exit. ${NORMAL}"
read sub3
while [ sub3 != '' ]
do
if [[ $sub3 = "" ]]; then
exit;
else
case $sub3 in
1) sub_menu4;
#othersub;
;;
2) clear;
sub_menu4;
#othersub;
;;
3) clear;
sub_menu4;;
4) clear;
sub_menu4;;
x)exit;
;;
\n)exit;
;;
*)clear;
option_picked "Pick an option from the menu";
sub_menu4;
;;
esac
fi
done
}
ベストアンサー1
例として、次のコマンドを実行してみてください。
clear; tput cup 4 10; printf "Menu Item 1"; tput cup 7 30; printf "Menu Item 29";tput cup 23 0; printf "Make your selection"
次に、コマンドman
ページを確認して何がtput
起こるかを確認します。次に、簡単な比較と画面座標演算ロジックです。シェルスクリプトをマスターしたようです。だから、書くのは難しいことではありません。