조건부 루프를 실행할 때 다음 명령을 종료하는 방법은 무엇입니까? 내 조건은 다음과 같습니다. 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