쉘 스크립트에서 이 명령은 무엇입니까?exit $?
그것을 설명하는 자료를 찾지 못했습니다.
답변1
목적은 일반적으로 이전 명령(쉘의 표현)과 exit $?
동일한 종료 상태로 쉘을 종료하는 것 입니다. $?
하지만 여기에는 몇 가지 문제가 있습니다.
- 주위에 따옴표가 생략되어 있습니다
$?
. 이는 분할+글로브의 영향을 받게 되므로$?
문자가 포함된 경우 제대로 작동하지 않음을 의미합니다$IFS
. $?
부정적 이면-12
이전 명령이 함수이거나 일부 셸에 내장된 명령인 것처럼exit
인식할 수 없는 옵션으로 해석되어 오류가 발생할 수 있습니다.exit -- "$?"
이를 피할 수는 있지만--
모든 쉘이 이를 지원하는 것은 아닙니다.
단독으로 사용하면 위의 두 가지 문제를 피할 수 있습니다. exit
왜냐하면 exit
매개 변수가 제공되지 않을 때의 기본 동작은 마지막 명령의 종료 상태로 종료하는 것이기 때문입니다.
이전 명령이 실패할 때 스크립트를 종료하는(그리고 해당 명령과 동일한 실패한 종료 상태로 종료하는) 일반적인 관용어는 다음과 같습니다.
that-command || exit
신호로 인해 이전 명령이 종료되었거나 이전 명령의 반환 코드가 0~127 범위를 벗어난 경우 추가 고려 사항이 필요하며 그 중 대부분은 아래에 설명되어 있습니다.프로세스 종료 시 기본 종료 코드는 무엇입니까?