강좌 & 팁
글 수 2,412
2015.05.14 23:21:08 (*.38.111.189)
40909
전 시간에 if 문을 보았습니다.
22 if [ \( $# -eq 2 \) -a \( "$1" = "-A" \) ] ; then
if test-commands; then
consequent-commands;
[elif more-test-commands; then
more-consequents;]
[else alternate-consequents;]
fi
이제 test-commands 를 살펴 봐야 합니다.
[ \( $# -eq 2 \) -a \( "$1" = "-A" \) ]
우선 역슬래쉬를 알아 봅시다.
https://wiki.kldp.org/HOWTO/html/Adv-Bash-Scr-HOWTO/quoting.html#ESCP
여기서 \는 문자 그대로 해석되도록 합니다.
따라서 아래와 같습니다.
($# -eq 2) -a ("$1"="-A") 이것과 같습니다.
이렇게 한 이유는 스크립트에서 ()는 특수 문자에 헤당 됩니다.
https://wiki.kldp.org/HOWTO/html/Adv-Bash-Scr-HOWTO/special-chars.html
위 링크를 검색해 보면,
소괄호는 서브쉘 동작을 하게 합니다.
이런 동작을 하지 못하게 하기 위함 입니다.
끝 -