break 명령을 함수의 인수로 사용하기

break 명령을 함수의 인수로 사용하기

이런 솔루션을 사용해 보는 것은 어떨까요?

함수는 루프(루프?)로 실행됩니다. 해당 루프 내에는 루프를 사용하는 또 다른 함수가 있습니다. 두 번째 함수가 사용자로부터 응답을 받지 못하면 break 2루프를 중지하고 기본 스크립트 작업을 계속하도록 보냅니다.

이 함수는 파일에 설정된 변수를 사용합니다.

그렇다면 변수를 함수의 인수로 사용하는 것이 좋은 생각일까요?

답변1

더 깔끔한 대안은 사용자가 또는 answer이라고 말했는지에 따라 0을 반환하거나 1을 반환하는 것 입니다 . 그런 다음 호출된 위치에서 값을 테스트하고 0이 반환되는 경우에만 작업이 수행됩니다.yesnoansweranswer

이전 스크립트를 기반으로 하면 다음과 같습니다.

while tomcat_running && user_wants_to_stop_tomcat; do
    echo "$tomcat_status_stopping"
    kill $RUN
    sleep 2
done

function tomcat_running() {
    check_tomcat_status
    [ -n "$RUN" ]
}

function user_wants_to_stop_tomcat() {
    answer "WARNING: Tomcat still running. Kill it? "
}

function answer() {
    while true; do
        printf "$1"
        read response
        case $response in
        [yY][eE][sS]|[yY])
            return 0
            ;;
        [nN][oO]|[nN])
            return 1
            ;;
        *)
            printf "Please, enter Y(yes) or N(no)!\n"
            ;;
        esac
    done
}

관련 정보