Bash에서 종료 코드 확인

Muhammad Husnain 2022년6월21일
Bash에서 종료 코드 확인

이 튜토리얼에서는 Bash에서 명령문의 종료 상태를 가져오고 표시하는 몇 가지 방법을 설명합니다. 먼저 간단한 if 문을 사용하여 종료 상태를 가져오는 방법에 대해 논의한 후 종료 상태를 가져오기 위한 대안과 약식 표기법에 대해 논의합니다.

Bash에서 종료 코드 확인

종료 상태는 기본적으로 명령의 성공 여부를 알려주는 정수입니다. 직관적이지 않지만 0의 종료 상태는 성공을 나타내고 0이 아닌 값은 실패/오류를 나타냅니다.

이 비직관적 솔루션을 사용하면 서로 다른 오류 코드가 서로 다른 오류를 나타낼 수 있습니다. 예를 들어 명령을 찾을 수 없는 경우 종료 상태 127이 반환됩니다.

Bash에서 종료 코드를 확인하는 방법은 $?를 사용하는 것입니다. 명령. 종료 상태를 출력하려면 다음과 같이 하면 됩니다.

# your command here
testVal=$?
echo testVal

오류를 보고하는 데 0이 아닌 종료 코드가 사용된다는 것을 알고 있습니다. 일반적으로 오류를 확인하려면 문제의 명령과 종료 코드가 오류(0이 아님)인지 또는 종료 코드가 적절한 실행을 나타내는지 확인하는 if 문을 사용하여 작은 스크립트를 작성할 수 있습니다. .

# your command here
testVal=$?
if [$testVal -ne 0]; then
    echo "There was some error"
fi
exit $testVal

약칭 표기법은 $?test를 사용하여 수행할 수 있습니다. 명령. 이 코드의 최소 예는 다음과 같습니다.

# your command here
test $? -eq 0 || echo "There was some error"

위의 진술을 더 잘 이해하기 위해 확장할 수 있습니다.

# your command here
exitStat = $?
test $exitStat -eq 0 && echo "No error! Worked fine" || echo "There was some error";
exit $exitStat

위와 같이 실행 성공 시 "No error! Worked fine" 메시지, 실패 시 오류 메시지를 볼 수 있습니다.

중요 참고 사항 및 가능한 대체 솔루션

명령이 올바르게 실행되었는지 확인하기 위해 종료 코드를 사용하는 경우 훨씬 더 간단한 대안이 있습니다.

# define your_command here
# your_command = enter a command here
if your_command; then
    echo command returned true
else
    echo command returned an error
fi

이 경우 일반적으로 처음 몇 가지 옵션을 사용할 때와 동일한 출력을 얻습니다. 또한 종료 코드에 대한 특정 정보를 가져오거나 특정 종료 코드를 가져오려면 $?를 실행해야 합니다. 수동으로.

Muhammad Husnain avatar Muhammad Husnain avatar

Husnain is a professional Software Engineer and a researcher who loves to learn, build, write, and teach. Having worked various jobs in the IT industry, he especially enjoys finding ways to express complex ideas in simple ways through his content. In his free time, Husnain unwinds by thinking about tech fiction to solve problems around him.

LinkedIn

관련 문장 - Bash Exit