리눅스에서 메뉴를 만드는 작업을 맡겼는데 효과가 썩 좋지는 않은 것 같았습니다. 무언가를 선택하면 해당 작업을 수행하고 작업이 끝나면 기본 메뉴로 돌아가고 싶습니다.
#!/bin/bash
PS3='What do you want to do day: '
options=("Create Group" "Delete Group" "Create User 3" "Delete User" "Quit")
select opt in "${options[@]}"
do
case $opt in
"Create Group")
echo "You chose Create Group 1"
;;
"Delete Group")
echo "You chose to Delete Group"
;;
"Create User")
echo "You chose to Create User"
;;
"Delete User")
echo "You choose to Delete User"
;;
"Quit")
break
;;
*) echo invalid option;;
esac
done
답변1
while 및 영구 true 조건을 사용하여 이를 수행할 수 있습니다.
while [ 1 -eq 1 ] # or while [ true ] ( as glenn said)
do
select opt in "${options[@]}"
do
case $opt in
"Create Group")
echo "You chose Create Group 1"
;;
"Delete Group")
echo "You chose to Delete Group"
;;
"Create User")
echo "You chose to Create User"
;;
"Delete User")
echo "You choose to Delete User"
;;
"Quit")
break
;;
*) echo invalid option;;
esac
done
done
답변2
매번 메뉴를 보여주고 싶다고 생각합니다. 이 시도:
quit=false
until $quit; do
select opt in "${options[@]}"; do
case $opt in
"Create Group")
echo "You chose Create Group 1"
break
;;
"Delete Group")
echo "You chose to Delete Group"
break
;;
"Create User")
echo "You chose to Create User"
break
;;
"Delete User")
echo "You choose to Delete User"
break
;;
"Quit")
quit=true
break
;;
*) echo invalid option;;
esac
done
done