반응형
Command Line 프로그램을 제작하다보면, 실행 결과가 정상적으로 처리되었는지 확인하여 처리해야 하는 경우가 있다.
이때 유용한 Exit Status에 대해서 배워보도록 하겠다.
윈도우와 리눅스는 모두 콘솔에서 실행을 완료후 종료 코드를 내보내도록 구성되어 있다.
그리고 실행 종료 코드를 특정 변수에 저장한다.
Windows의 경우 echo %errorlevel%, 리눅스의 경우 echo $? 에 마지막 실행 코드를 보관 한다.
Exit Status가 0인 경우 정상적으로 실행이 완료된 상태를 의미한다.
만약 0 이외의 코드가 있다면 프로그램 실행중 오류가 발생했다는 의미이다.
프로그램 실행 유무 확인
그럼 간단이 윈도우에서 Exit Status를 확인해 보겠다.
hostname 명령이 실행되었는지와 잘못된 명령을 내렸는지도 확인된다.
C:\Users\singl>hostname
DESKTOP-K2VS8LK
C:\Users\singl>%errorlevel%
'0' is not recognized as an internal or external command,
operable program or batch file.
C:\Users\singl>hostnam
'hostnam' is not recognized as an internal or external command,
operable program or batch file.
C:\Users\singl>%errorlevel%
'9009' is not recognized as an internal or external command,
operable program or batch file.
실행 결과에 대한 결과 확인
만약 프로그램 실행은 되었지만, 처리 결과가 비 정상 실행인 경우에도 구분이 가능하다.
C:\Users\singl>hostname //233123
sethostname: Use the Network Control Panel Applet to set hostname.
hostname -s is not supported.
C:\Users\singl>%errorlevel%
'1' is not recognized as an internal or external command,
operable program or batch file.
만약 curl 같은 프로그램을 통해 정상적으로 파일을 다운로드 하였는지도 확인이 가능하다.
C:\Users\singl>curl -O http://naver.com
curl: Remote file name has no length!
curl: try 'curl --help' for more information
C:\Users\singl>%errorlevel%
'23' is not recognized as an internal or external command,
operable program or batch file.
C:\Users\singl>curl -O http://naver.com/index.html
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 162 0 162 0 0 162 0 --:--:-- --:--:-- --:--:-- 692
C:\Users\singl>%errorlevel%
'0' is not recognized as an internal or external command,
operable program or batch file.
만약 Python이나 C# 을 통해 콘솔 자동화를 구성한다면 본 에러코드 리턴을 통해 실행 유무를 확인하여 분기를 구현할 수 있을 것이다.
반응형
'Etc' 카테고리의 다른 글
맥북 - 로그인시 프로그램 자동 실행 쉽게 추가하기 (0) | 2021.07.24 |
---|---|
BoB 10기 모집 - 2021년 6월 4일 마감 (0) | 2021.05.27 |
Visual Studio 2019 - Windows XP 지원 버전으로 Visual C++ 컴파일 하기 (0) | 2021.03.04 |
HTML - class modal popup mouse cursor 변경 (0) | 2021.01.18 |
Syslog level format [default priority] (0) | 2020.12.29 |