이처럼 $*는 모든 위치 매개변수를 하나의 문자열로 처리하고, $@은 모든 위치 매개변수를 각각 인식합니다. 따라서 위치 매개변수를 그대로 사용하고 싶다면 $@을 사용해야 합니다.
● $?
$?는 최근에 실행된 명령이나 함수, 스크립트의 프로세스 종료 코드 또는 반환값을 나타내는 특수 매개변수입니다. 이 매개변수는 명령어나 스크립트가 성공적으로 실행됐는지, 오류가 발생했는지를 나타내는 정수 값을 가집니다. 일반적으로 0은 성공을, 0 이외 값은 실패를 의미하지만, 프로그램이나 함수, 스크립트의 종류에 따라 각기 다른 의미를 지닐 수 있습니다. $?도 간단히 실습하며 기능을 확인해 봅시다.
1 셸에서 다음 명령어를 실행합니다. 결과를 셸에서 바로 확인할 수 있습니다.
터미널 |
gilbut@ubuntu2404:~/script$ ms ms: command not found gilbut@ubuntu2404:~/script$ echo $? 127 |