Здесь работает следующий скрипт.
Внесенные изменения должны были иметь read_sub_options
, возвращать 2, если был вызван sub_menu
, и возвращать 1, когда была выбрана опция Back, а затем проверять возвращаемое значение последней команды запуска в showSubMenu и прерывать, если был выбран Back. *
См. Основы сценариев KSH и Изучение оболочки Korn для получения дополнительной справочной информации по сценариям KSH.
См. выберите и справочную страницу ksh для получения информации об альтернативном методе выбора меню, как упомянуто в комментарии к вашему вопросу.
#!/bin/ksh
sub_menu() {
echo "~~~~~~~~~~~~~~~~~~~~~~~~~"
echo " S U B - M E N U "
echo "~~~~~~~~~~~~~~~~~~~~~~~~~"
echo "1. Display properties"
echo "2. Back"
return 2;
}
read_sub_options(){
echo "Please select option"
read option
case $option in
1) sub_menu ;;
2) return 1;;
*) echo "Please insert options 1 ~ 2";;
esac
}
showSubMenu(){
while true
do
sub_menu
read_sub_options
if [[ $? == 1 ]] ; then
break
fi
done
}
read_options(){
echo "Please select option "
read option
case $option in
1) showSubMenu;;
2) exit 0;;
*) echo "Please insert options ";;
esac
}
show_menus() {
echo "~~~~~~~~~~~~~~~~~~~~~"
echo " M A I N - M E N U "
echo "~~~~~~~~~~~~~~~~~~~~~"
echo "1. Sub Menu"
echo "2. Exit"
}
# -----------------------------------
# MAIN
# ------------------------------------
while true
do
show_menus
read_options
done