취미와 밥줄사이

[ Shell Script ] 종료와 종료 상태 본문

Infrastructure/ShellScript

[ Shell Script ] 종료와 종료 상태

취미와 밥줄사이 2022. 3. 4. 18:46

종료 상태(exit status)

  • Return Value, Return status라고 부르기도 합니다.
  • 이전에 수행했던 명령어나 프로그램이 종료될 때 넘겨주는 값을 의미합니다.
  • 종료 상태 또는 반환 값이 중요한 이유는 쉘 스크립트를 작성하는데 있어서 특정 명령어의 성공 여부에 따라 분기해야 하는 경우 이전 명령어가 정상적으로 수행되었는지 확인하는 것이 중요하기 때문이다.
  • 쉘 스크립트 내에서 exit 명령어가 실행되면 스크립트가 종료되면 부모 프로세스에 종료 상태를 전달할 수 있는데 이 값을 프로그램 내에서 임의로 지정할 수 있습니다.
  • 모든 명령어는 종료 상태를 리턴한다.
    • 명령어가 성공시에는 0을 리턴하고 실패시에는 에러 코드로 해석될 수 있는 non-zero(1~255)를 리턴한다.
    • 유닉스 관례를 잘 따르는 프로그램, 스크립트 등 이라면, 함수의 가장 마지막에 실행된 명령어가 종료 상태를 결정한다.
    • $? 변수는 제일 마지막 명령어의 종료 상태 코드 값을 가진다.
  • shell script가 실행되는 프로세스에서 exit을 통해 상태 종료 표시만을 프로세스 실행 결과로 반환할 수 있습니다.
    • 일반적으로 0은 성공을 나타내며 나머지 1~255는 에러를 나타냅니다.

종료(exit)

  • exit 명령어는 매개변수로 주저인 값을 리턴합니다.
  • 종료 상태로 사용할 수 있는 값의 범위는 0~255까지 입니다.
#! /bin/bash

echo "hello"
exit 100
  • $?는 방금 실행된 프로세스가 반환한 결과값을 저장함

종료 상태 코드(exit status code)

  • 종료 상태 코드들은 예약되어 있기 때문에 사용자가 임의로 exit 매개변수로 쓰면 안된다.
종료코드 에러 메시지
0 성공적으로 실행  
1 광범위한 일반적 에러 Operation not permitted” , "not a valid identifier", "too many arguments" 등
2 쉘 builtin 명령어 오 사용 "No such file or directory" 등
126 Permission 문제로 실행 불가능한 명령어의 구동 "Permission denied", "ls a directory"
127 명령어의 경로($PATH) 문제 혹은 명령어 오타 "Command not found", "No such file or directory"

 

 

REFERENCE

https://gracefulprograming.tistory.com/70

 

[bash 쉘 스크립트] 종료(exit)와 종료 상태 (exit status)

개요 안녕하세요 피터입니다. 오늘은 Bash 쉘에서 프로그램을 종료(exit) 하는 방법과 종료 상태(exit status)를 얻는 방법에 대해 설명드리겠습니다. 종료 상태는 리턴값(return value, return status)이

gracefulprograming.tistory.com

https://velog.io/@hidaehyunlee/minishell-4.-%EC%A2%85%EB%A3%8C%EC%83%81%ED%83%9C%EC%99%80-%EC%97%90%EB%9F%AC%EB%A9%94%EC%84%B8%EC%A7%80-%EC%B2%98%EB%A6%AC

 

[minishell] 4. 종료상태와 에러메세지 처리

모든 명령어는 종료 상태(exit status) 리턴한다. 명령어 성공시에는 0을 리턴하고 실패시에는 에러 코드로 해석될 수 있는 1~255를 리턴한다. 즉 유닉스 관례를 잘 따르는 프로그램이라면, 함수의 가

velog.io

https://twpower.github.io/134-how-to-return-shell-scipt-value

 

[Shell Script] 쉘 스크립트 함수나 실행에서 반환값(Return Value) 얻기

Practice makes perfect!

twpower.github.io

 

'Infrastructure > ShellScript' 카테고리의 다른 글

[ Shell Script ] read 명령어 사용법  (0) 2022.03.04
[ Shell Script ] 비교 표현식  (0) 2022.03.04