이탈$이 무엇인가요? 쉘 스크립트에서? [복사]

이탈$이 무엇인가요? 쉘 스크립트에서? [복사]

쉘 스크립트에서 이 명령은 무엇입니까?exit $?

그것을 설명하는 자료를 찾지 못했습니다.

답변1

목적은 일반적으로 이전 명령(쉘의 ​​표현)과 exit $?동일한 종료 상태로 쉘을 종료하는 것 입니다. $?하지만 여기에는 몇 가지 문제가 있습니다.

  • 주위에 따옴표가 생략되어 있습니다 $?. 이는 분할+글로브의 영향을 받게 되므로 $?문자가 포함된 경우 제대로 작동하지 않음을 의미합니다 $IFS.
  • $?부정적 이면 -12이전 명령이 함수이거나 일부 셸에 내장된 명령인 것처럼 exit인식할 수 없는 옵션으로 해석되어 오류가 발생할 수 있습니다. exit -- "$?"이를 피할 수는 있지만 --모든 쉘이 이를 지원하는 것은 아닙니다.

단독으로 사용하면 위의 두 가지 문제를 피할 수 있습니다. exit왜냐하면 exit매개 변수가 제공되지 않을 때의 기본 동작은 마지막 명령의 종료 상태로 종료하는 것이기 때문입니다.

이전 명령이 실패할 때 스크립트를 종료하는(그리고 해당 명령과 동일한 실패한 종료 상태로 종료하는) 일반적인 관용어는 다음과 같습니다.

that-command || exit

신호로 인해 이전 명령이 종료되었거나 이전 명령의 반환 코드가 0~127 범위를 벗어난 경우 추가 고려 사항이 필요하며 그 중 대부분은 아래에 설명되어 있습니다.프로세스 종료 시 기본 종료 코드는 무엇입니까?

관련 정보