문제

좋아, 그래서 나는 Google에서 이것을 검색하려고 시도했지만 답을 찾을 수없는 것 같습니다. 내가하려는 것은 bash에서 case 문을 만드는 것입니다. 그러나 사용자가 나열된 것과 다른 숫자를 입력하면 스크립트를 종료합니다. 오류를 제공하고 사용자가 옵션 중 하나를 선택하도록 요청하는 방법은 무엇입니까?

예를 들어, 내 사례 진술

case $ans in
1) echo "Running Project 1..."
   sleep 2
   ./project1.sh
;;
2) echo "Running Project 2..."
   sleep 2
   ./project2.sh
;;
Qq) echo "Exiting"
    exit
;;
esac

따라서 1, 2, QQ 이외의 옵션은 유효하지 않은 선택이라는 오류가 발생합니다. 다시 시도하십시오.

도움이 되었습니까?

해결책

당신은 그와 같은 타임 루프와 부울 변수가 필요합니다.

flag = true
while [  $flag ]; do
    case $ans in
        1) echo "Running Project 1..."
           sleep 2
           ./project1.sh
        ;;
        2) echo "Running Project 2..."
           sleep 2
           ./project2.sh
        ;;
        Qq) echo "Exiting"
            flag = false
        ;;
    esac
done
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top