강좌 & 팁
글 수 2,412
2015.05.07 16:10:01 (*.134.169.166)
39860
22 if [ \( $# -eq 2 \) -a \( "$1" = "-A" \) ] ; then
맨처음 22는 라인 번호 입니다.
참 난해 하네요. 천천히 한개씩 해보도록 하겠습니다.
우선 if 문을 알아야 할 것으로 판단 됩니다.
if test-commands; then
consequent-commands;
[elif more-test-commands; then
more-consequents;]
[else alternate-consequents;]
fi
https://www.gnu.org/software/bash/manual/bash.html#Conditional-Constructs
여기서 중요한 사항이 있습니다.
https://wiki.kldp.org/HOWTO/html/Adv-Bash-Scr-HOWTO/exit-status.html
모든 명령어는 종료 상태( exit status (가끔은 리턴 상태( return status )라고도 하는)를 리턴합니다.
명령어가 성공시에는 0을 리턴하고 실패시에는 에러 코드로 해석될 수 있는 non-zero를 리턴합니다.
예외가 있기는 하지만, 유닉스 관례를 잘 따르는 명령어, 프로그램, 유틸리티는 성공했을 때 0을 리턴합니다.
따라서
The test-commands list is executed, and if its return status is zero, the consequent-commands list is executed. If test-commands returns a non-zero status, each elif list is executed in turn, and if its exit status is zero, the corresponding more-consequents is executed and the command completes. If ‘else alternate-consequents’ is present, and the final command in the final if or elif clause has a non-zero exit status, then alternate-consequents is executed. The return status is the exit status of the last command executed, or zero if no condition tested true.
여기서 test-commands 가 0을 리턴 한다는 의미는 참이란 의미 입니다.
끝 -