Вам нужно будет добавить новый l oop, который встраивает ваше меню, а затем добавить еще break
в каждый случай, а для варианта 4 отредактировать до break 2
, как показано в коде ниже. Я также добавил опцию очистки экрана после выбора опции.
#!/bin/bash
PS3='Please enter your choice: '
while true; do
clear
options=("Option 1" "Option 2" "Option 3" "Exit")
select opt in "${options[@]}"
do
case $opt in
"Option 1")
echo "you chose choice $REPLY which is $opt"
break
;;
"Option 2")
echo "you chose choice $REPLY which is $opt"
break
;;
"Option 3")
echo "you chose choice $REPLY which is $opt"
break
;;
"Exit")
break 2
;;
*) echo "invalid option $REPLY";;
esac
done
done
Таким образом, случай использования этого кода будет:
$ ./select.sh
1) Option 1
2) Option 2
3) Option 3
4) Exit
Please enter your choice: 1
you chose choice 1 which is Option 1
1) Option 1
2) Option 2
3) Option 3
4) Exit
Please enter your choice: 2
you chose choice 2 which is Option 2
1) Option 1
2) Option 2
3) Option 3
4) Exit
Please enter your choice: 3
you chose choice 3 which is Option 3
1) Option 1
2) Option 2
3) Option 3
4) Exit
Please enter your choice: 4
$
Добавление паузы после выбора
Если вы хотите, чтобы пользователь мог прочитать выбранную опцию, вы можете добавить следующую строку перед последним done
кода:
read -p "Press [Enter] key to continue..."
Таким образом, пользователь увидит сообщение и придется нажать клавишу Enter, чтобы снова отобразить меню.
И случай использования этого будет:
1) Option 1
2) Option 2
3) Option 3
4) Exit
Please enter your choice: 1
you chose choice 1 which is Option 1
Press [Enter] key to continue...