이전 케이스에서 다음 PS3 케이스를 실행할 수 있습니까?

이전 케이스에서 다음 PS3 케이스를 실행할 수 있습니까?

다음과 같은 스크립트가 있다고 가정해 보겠습니다.

#!/bin/bash
PS3='Select option: '
options=("Option one" "Option two")
select opt in "${options[@]}"
do
    case $opt in
    "Option one")
    # few lines of code
    if [ "check that code did everything it was supposed to do" ]
        then
        echo "Completed"
        else
        echo "Something went wrong"
    fi
    ;;

    "Option two")
    # more code
    ;;
    esac
done

이제 PS3 메뉴를 다시 표시하지 않고 echo "Something went wrong"즉시 실행되는 명령으로 라인을 변경할 수 있습니까 ?Option two

답변1

당신이 찾고 있는 것은 "fall-through"라고 불리며, bash의 설명에서 fall case-through는 . 그러나 조건부 통과는 불가능합니다. 즉, 블록 중간에 a를 삽입할 수 없습니다 . 항상 실패하고 코드가 성공적으로 실행되면 다음을 수행하는 것이 좋습니다.;&;;;&ifcontinue

case $opt in
"Option one")
# few lines of code
if [ "check that code did everything it was supposed to do" ]
then
    echo "Completed"
    continue
else
    echo "Something went wrong"
fi
;&

"Option two")
# more code
;;
esac

관련 정보