명령 다음에 명령 종료

명령 다음에 명령 종료

조건부 루프를 실행할 때 다음 명령을 종료하는 방법은 무엇입니까? 내 조건은 다음과 같습니다. echo "찾을 수 없음"이라고 표시되면 해당 루프 이후의 모든 항목이 작동하지 않도록 전체 스크립트를 종료하고 싶습니다. 도와주세요. 저는 유닉스 초보자입니다. 감사해요.

if grep -q 'pattern' 'file'; 
then 
    echo "found" 
else
    echo "not found"
fi

답변1

이 작업을 수행하려면 명령을 사용할 수 있습니다 exit. 에서 man bash:

종료[n]

쉘이 n 상태로 종료되도록 합니다. n이 생략되면 종료 상태는 마지막으로 실행된 명령의 상태입니다. EXIT의 트랩은 쉘이 종료되기 전에 실행됩니다.

if grep -q 'pattern' '/path/to/file'
then 
    echo "found" 
else
    echo "not found"
    exit
fi

노트:이후에 같은 줄에 다른 명령을 배치하지 않는 한 첫 번째 줄 끝에 있는 세미콜론은 필요하지 않습니다.

if grep -q 'pattern' '/path/to/file'; then
    echo "found" 
else
    echo "not found"
    exit
fi

답변2

if grep -q 'pattern' '/path/to/file'; 
then 
    echo "found" 
else
    echo "not found"
    exit 1
fi

남자가 나가다

편집하다

선택하다:

grep -q 'pattern' '/path/to/file'
grep_ec=$?
if [ "$grep_ec" -eq "0" ]; then 
    echo "found" 
else
    echo "not found"
    exit $grep_ec
fi

관련 정보