Unix 쉘 스크립트 선택 및 케이스 명령문

Unix 쉘 스크립트 선택 및 케이스 명령문

1) 나는 이와 같은 유닉스 스크립트를 작성하고 싶다

echo "Do u want to check application logs ???"
select opt in Yes No
    do
    case $opt in
    "Yes")
         commmands
     ;;
    "No")
    break
        ;;
    esac
    done

echo "Do u want to check non-application logs ???"
select opt in Yes No
    do
    case $opt in
    "Yes")
         commmands
     ;;
    "No")
    break
        ;;
    esac
    done

첫 번째 부분을 실행한 후 종료하고 같은 내용을 계속해서 묻고 다른 부분인 비 응용 프로그램 로그로 이동하지 않습니다.

2) Unix 쉘 스크립트에서 두 개의 select 문과 두 개의 Case 문을 사용할 수 있습니까? 그렇다면 구문을 알려주십시오.

답변1

bash도움말 에서 select:

선택: 이름 선택 [워드로 ... ;] 명령 실행, 완료
...
명령은 인터럽트 명령이 실행될 때까지 각 선택 후에 실행됩니다.

breakbreak거기 에 있는 명령은 case가 아니라 입니다 . 블록 외부에 하나를 넣어야 select합니다 .breakcase

예를 들어:

echo "Do u want to check application logs ???"
select opt in Yes No
do
    case $opt in
    "Yes")
        commmands
        ;;
    esac
    break
done

또한 여기에는 case작업이 하나뿐이므로 해당 작업도 사용할 수 있지만 if그 여부는 사용자에게 맡기겠습니다.

관련 정보