본문 바로가기
[AWS-FRF]/EC2

[중요][AWS] 유닉스에서 $?의 의미 !!

by METAVERSE STORY 2024. 9. 25.
반응형

 

 

 

특수문자로 이루어진 $?의 의미는 무엇일까?

 

$의 경우 변수 선언했을 때  그 변수를 호출하는 특수문자이고

?의 경우 어느 한 문자를 가리키는 특수문자일터인데

 

 

뭔고 하니 $?의 의미는 이전의 상태를 나타내는 쉘스크립트에서 쓰이는 특수문자인듯

 

 

 이건 설명 보다 예를 드는 것이 더 쉬운듯

 

 

간단한 쉘스크립트를 보면

----------------------

#!/usr/bin/ksh

ls -al

echo $?

ls -8

echo $?

-----------------------

 

위 쉘을 돌려보면

ls -al의 경우 정상출력이 되므로 첫번쨰 에코값은 0이 출력

아래의 경우 -8은 옵션에 없는 것이므로

0이 아닌 다른값 출력.

 

즉 이전상태(혹은 쉘명령)가 정상일 경우 $?는 0을 출력하고

비정상은 0이 아닌값을 출력한다.

 

if문을 사용해서 앞의 상태가 정상일 경우 정상로그로 보내고

#!/usr/bin/ksh

if [ $?=0 ]

출력결과 > 정상로그.log

비정상일경우 에러로그로 리다이렉션하면 괜찮을 적용방법 

else

출력결과 > 에러로그.log

fi

 

 

 

출처 : https://blog.naver.com/darkpegasus/60196514107

반응형

댓글