방금 새로운 쉘 스크립트를 생성했는데 약간의 문제가 발생했습니다. 아래는 내 스크립트입니다:-
function mainMenu(){
while :
do
echo -e "\nMain Menu:"
echo " A. Process Managements Utilities"
echo " B. Memory Managements Utilities"
echo " C. Exit"
read -p "Select :" menuSelect
echo
case $menuSelect in
a|A) processMgmt;;
b|B) memoryMgmt;;
c|C) exit 0;;
*)echo "Invalid Input"
echo
;;
esac
done
}
사용자가 "INVALID INPUT"을 입력하면 함수는 모든 mainMenu()
출력을 인쇄합니다.
Main Menu:
A. Process Managements Utilities
B. Memory Managements Utilities
C. Exit
Select :e
Invalid Input
Main Menu:
A. Process Managements Utilities
B. Memory Managements Utilities
C. Exit
Select :
select:
사용자 입력이 유효하지 않은 경우 에만 인쇄하는 방법은 무엇입니까 ?
Select:e
Invalid input
Select:s
Invalid input
답변1
처음으로 옵션 A, B 등에 대한 정보만 인쇄하려고 하므로,while
인쇄 후 반복 시작그것:
function mainMenu(){
echo -e "\nMain Menu:"
echo " A. Process Managements Utilities"
echo " B. Memory Managements Utilities"
echo " C. Exit"
while :
do
read -p "Select :" menuSelect
echo
case $menuSelect in
a|A) processMgmt;;
b|B) memoryMgmt;;
c|C) exit 0;;
*)echo "Invalid Input"
echo
;;
esac
done
}
예시 출력(예:예상되는질문에서) :
Main Menu:
A. Process Managements Utilities
B. Memory Managements Utilities
C. Exit
Select :q
Invalid Input
Select :q
Invalid Input
이렇게 하면 함수가 호출될 때 선택 항목에 대한 정보가 한 번 인쇄된 mainMenu
다음 입력을 while
반복하여 원하는 작업을 수행합니다.read
case
입력이 잘못된 경우, while
그리고 루프에서 다시 물어보세요 read -p "Select"
.