전 시간에 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


위 링크를 검색해 보면,

소괄호는 서브쉘 동작을 하게 합니다.

이런 동작을 하지 못하게 하기 위함 입니다.


끝 -