Short Commands/Linux

'$?'란 (명령어 정상 작동 여부 확인하는 법) (리눅스 터미널 명령어)

quokkalover 2021. 7. 19. 11:21

$?는 직전 process의 code를 return 한다.

 

여기서 말하는 code란 직전 명령의 결과값이 아니라, 상태값을 나타내는 code를 의미.

  • 0 = no error happened.
  • 다른 값 = unusual condition이 발생했다는 것을 의미함.
    • 128을 넘기는 경우는 특정 signal을 의미한다.
    • 예를 들어서 147 이라면, program이 signal 19를 받았다는 것을 의미 (19=SIGSTOP)

 

예를 들어보면 

newfolder라는 디렉토리가 없는 경로에서 아래 커맨드를 실행해보면 아래와 같은 결과가 나온다. 

mkdir newfolder
echo $?
#성공했으니까 
0
mkdir newfolder
echo $?
#실패했으니까 
#1