다음 명령이 무엇을 의미하는지 말해 줄 수 있는 사람이 있나요? 나는 쉘 스크립트를 읽고 그것이 무엇을 하는지 조사하고 있습니다. 그러나 스크립트 끝에 다음 명령이 나타납니다. 이것이 무엇을 의미하는지 모르겠습니다.
if [ $? -ne '0' ]; then
exit 1
fi
exit 0
답변1
$?
쉘이 기다린 마지막 명령의 종료 상태(문자열이지만 정수로 표시됨)입니다. 즉, 마커를 사용하여 배경에 넣지 않습니다 &
.
전통적으로 0 종료 상태는 "성공"을 의미하며 이는 프로그램마다 다릅니다. cat
거의 모든 경우에 0 상태로 종료되고, grep
일치하는 항목이 발견되면 0 상태로 종료됩니다.
따라서 스크립트가 마지막으로 실행되는 명령에 관계없이 스크립트는 종료 상태를 확인합니다. 상태가 0이 아닌 경우 스크립트는 상태 1로 종료됩니다. 그렇지 않으면 존재 상태는 0입니다.
편집의 관점에서 볼 때 이 코드는 실제로 필요하지 않습니다. 스크립트를 실행하는 셸은 호출한 마지막 명령의 종료 상태로 종료됩니다. 다른 종료 상태는 때때로 다른 것을 의미하므로 1 종료 상태가 중요할 수 있지만 일반적으로 성공의 경우 0이고 실패의 경우 0이 아닌 것이 대부분 필요하며 이는 status 로 종료하는 명령에서 발생합니다 $?
.