7.3. ºñ±³ ¿¬»êÀÚ(ÀÌÁø)

Á¤¼ö ºñ±³

-eq

°°À½

if [ "$a" -eq "$b" ]

-ne

°°Áö ¾ÊÀ½

if [ "$a" -ne "$b" ]

-gt

´õ Å­

if ["$a" -gt "$b" ]

-ge

´õ Å©°Å³ª °°À½

if [ "$a" -ge "$b" ]

-lt

´õ ÀÛÀ½

if [ "$a" -lt "$b" ]

-le

´õ À۰ųª °°À½

if [ "$a" -le "$b" ]

<

´õ ÀÛÀ½(ÀÌÁß ¼Ò°ýÈ£¿¡¼­)

(("$a" < "$b"))

<=

´õ À۰ųª °°À½(ÀÌÁß ¼Ò°ýÈ£¿¡¼­)

(("$a" <= "$b"))

>

´õ Å­(ÀÌÁß ¼Ò°ýÈ£¿¡¼­)

(("$a" > "$b"))

>=

´õ Å©°Å³ª °°À½(ÀÌÁß ¼Ò°ýÈ£¿¡¼­)

(("$a" >= "$b"))

¹®ÀÚ¿­ ºñ±³

=

°°À½

if [ "$a" = "$b" ]

==

°°À½

if [ "$a" == "$b" ]

= ¿Í µ¿ÀǾîÀÔ´Ï´Ù.

[[ $a == z* ]]    # $a °¡ "z"·Î ½ÃÀÛÇϸé Âü(ÆÐÅÏ ¸ÅĪ)
[[ $a == "z*" ]]  # $a °¡ z* ¿Í °°´Ù¸é Âü

[ $a == z* ]      # ÆÄÀÏ globbingÀ̳ª ³¹¸» Á¶°¢³²ÀÌ ÀϾ
[ "$a" == "z*" ]  # $a °¡ z* ¿Í °°´Ù¸é Âü

# Thanks, S.C.

!=

°°Áö ¾ÊÀ½

if [ "$a" != "$b" ]

ÀÌ ¿¬»êÀÚ´Â [[ ... ]] ¿¡¼­ ÆÐÅÏ ¸ÅĪÀ» »ç¿ëÇÕ´Ï´Ù.

<

¾Æ½ºÅ° ¾ËÆÄºª ¼ø¼­¿¡¼­ ´õ ÀÛÀ½

if [[ "$a" < "$b" ]]

if [ "$a" \< "$b" ]

"<" °¡ [ ] ¿¡¼­ ¾²ÀÏ ¶§´Â À̽ºÄÉÀÌÇÁ¸¦ ½ÃÄÑ¾ß ÇÏ´Â °Í¿¡ ÁÖÀÇÇϼ¼¿ä.

>

¾Æ½ºÅ° ¾ËÆÄºª ¼ø¼­¿¡¼­ ´õ Å­

if [[ "$a" > "$b" ]]

if [ "$a" \> "$b" ]

">" °¡ [ ] ¿¡¼­ ¾²ÀÏ ¶§´Â À̽ºÄÉÀÌÇÁ¸¦ ½ÃÄÑ¾ß ÇÏ´Â °Í¿¡ ÁÖÀÇÇϼ¼¿ä.

ÀÌ ºñ±³ ¿¬»êÀÚ¸¦ ¾î¶»°Ô ÀÀ¿ëÇÏ´ÂÁö ¿¹ 26-4¿¡¼­ »ìÆìº¸¼¼¿ä.

-z

¹®ÀÚ¿­ÀÌ "null"ÀÓ. Áï, ±æÀ̰¡ 0

-n

¹®ÀÚ¿­ÀÌ "null"ÀÌ ¾Æ´Ô.

°æ°í

Å×½ºÆ® ´ë°ýÈ£¿¡¼­ -n Å×½ºÆ®¸¦ ¹Þ´Â ¹®ÀÚ¿­Àº ²À Äõ¿ìÆ® ½ÃÄÑ¾ß µË´Ï´Ù. Äõ¿ìÆ® ¾È µÈ ¹®ÀÚ¿­À» ! -z¿Í °°ÀÌ ¾²°Å³ª Å×½ºÆ® ´ë°ýÈ£ ¾øÀÌ ´Üµ¶(¿¹ 7-5 Âü°í)À¸·Î ¾²¸é º¸ÅëÀº µ¿ÀÛÇϰÚÁö¸¸, À§ÇèÇÑ ½À°üÀÔ´Ï´Ù. Å×½ºÆ®¹®¿¡¼­ ¾²ÀÌ´Â ¹®ÀÚ¿­Àº Ç×»ó Äõ¿ìÆ®¸¦ ½ÃÄÑ ÁÖ¼¼¿ä. [1]

¿¹ 7-4. »ê¼ú ºñ±³¿Í ¹®ÀÚ¿­ ºñ±³

#!/bin/bash

a=4
b=5

#  ¿©±â¼­ "a"¿Í "b"´Â Á¤¼ö³ª ¹®ÀÚ¿­ ¾çÂÊ ¸ðµÎ·Î ÇØ¼®µÉ ¼ö ÀÖ½À´Ï´Ù.
#  Bash º¯¼ö´Â ŸÀÔ¿¡ ´ëÇØ °ü´ëÇϱ⠶§¹®¿¡
#+ »ê¼ú ºñ±³¿Í ¹®ÀÚ¿­ ºñ±³¿¡´Â ¾à°£ ¾Ö¸ÅÇÑ ºÎºÐÀÌ ÀÖ½À´Ï´Ù.

#  Bash ´Â ¼ýÀڷθ¸ ÀÌ·ç¾îÁø º¯¼ö¿¡ ´ëÇØ¼­ 
#+ »ê¼ú ºñ±³µµ Çã¿ëÇÏ°í ¹®ÀÚ¿­ ºñ±³µµ Çã¿ëÇÕ´Ï´Ù.
#  ÁÖÀÇÇØ¼­ ¾²±â ¹Ù¶ø´Ï´Ù.

if [ "$a" -ne "$b" ]
then
  echo "$a ¿Í $b ´Â °°Áö ¾Ê½À´Ï´Ù."
  echo "(»ê¼ú ºñ±³)"
fi

echo

if [ "$a" != "$b" ]
then
  echo "$a ´Â $b ¿Í °°Áö ¾Ê½À´Ï´Ù."
  echo "(¹®ÀÚ¿­ ºñ±³)"
fi

# ¿©±â¼­ "-ne" ¿Í "!=" ´Â µÑ ´Ù µ¿ÀÛÇÕ´Ï´Ù.

echo

exit 0

¿¹ 7-5. ¹®ÀÚ¿­ÀÌ ³ÎÀÎÁö Å×½ºÆ® Çϱâ

#!/bin/bash
# str-test.sh: Testing null strings and unquoted strings,
# but not strings and sealing wax, not to mention cabbages and kings...
# (¿Å±äÀÌ: ??? :)

# if [ ... ]  ¸¦ ¾µ²²¿ä.


#  ¹®ÀÚ¿­ÀÌ ÃʱâÈ­ ¾È µÆ´Ù¸é Á¤ÇØÁø °ªÀ» °®Áö ¾Ê´Âµ¥
#+ ÀÌ·± »óŸ¦ "³Î"(null)À̶ó°í ºÎ¸¨´Ï´Ù(0 °ú´Â ´Ù¸¨´Ï´Ù).

if [ -n $string1 ]    # $string1 Àº ¼±¾ðµµ ÃʱâÈ­µµ ¾È µÆ½À´Ï´Ù.
then
  echo "\"string1\" Àº ³ÎÀÌ ¾Æ´Õ´Ï´Ù."
else  
  echo "String \"string1\" Àº ³ÎÀÔ´Ï´Ù."
fi  
# Ʋ·ÈÁÒ.
# ÃʱâÈ­°¡ ¾È µÆ´Âµ¥µµ ³ÎÀÌ ¾Æ´Ñ °ÍÀ¸·Î ³ª¿À³×¿ä.


echo


# ´Ù½Ã ÇØº¸ÁÒ.

if [ -n "$string1" ]  # À̹ø¿£ $string1 À» Äõ¿ìÆ® ½ÃÄѼ­ ÇØº¸ÁÒ.
then
  echo "\"string1\" Àº ³ÎÀÌ ¾Æ´Õ´Ï´Ù."
else  
  echo "\"string1\" Àº ³ÎÀÔ´Ï´Ù."
fi      # Å×½ºÆ®¹®¿¡¼­´Â ¹®ÀÚ¿­À» ²À Äõ¿ìÆ® ½ÃŰ¼¼¿ä!


echo


if [ $string1 ]       # À̹ø¿£ ´Þ¶û $string1 ¸¸ µÎ°í ÇØº¸ÁÒ.
then
  echo "\"string1\" Àº ³ÎÀÌ ¾Æ´Õ´Ï´Ù."
else  
  echo "\"string1\" Àº ³ÎÀÔ´Ï´Ù."
fi  
# ÀÌ°Ç Àß µÇ³×¿ä.
# ¹®ÀÚ¿­À» Äõ¿ìÆ® ½ÃŰ´Â °Ô("$string1") ÁÁÀº ½À°üÀ̱ä ÇÏÁö¸¸
# [ ] Å×½ºÆ® ¿¬»êÀڴ ȥÀÚ ¾²ÀÌ¸é ¹®ÀÚ¿­ÀÌ ³ÎÀÎÁö ¾Æ´ÑÁö¸¦ Àß ¾Ë¾Æ³À´Ï´Ù.
#
# Stephane Chazelas °¡ ÁöÀûÇÑ °Íó·³,
#    if [ $string 1 ]   ´Â ÀÎÀÚ°¡ "]" Çϳª°í,
#    if [ "$string 1" ]  ´Â ÀÎÀÚ°¡ ºó "$string1"°ú "]", µÎ °³ÀÔ´Ï´Ù.



echo



string1=initialized

if [ $string1 ]       # , $string1 À» ´Ù½Ã È¥ÀÚ ½áº¸ÁÒ.
then
  echo "\"string1\" Àº ³ÎÀÌ ¾Æ´Õ´Ï´Ù."
else  
  echo "\"string1\" Àº ³ÎÀÔ´Ï´Ù."
fi  
# ¿ª½Ã °á°ú°¡ ¸Â°Ô Àß ³ª¿ÀÁÒ.
# ¸¶Âù°¡Áö·Î ÀÌÀ¯·Î Äõ¿ìÆ® ÇØÁÖ´Â °ÍÀÌ("$string1") ÁÁ½À´Ï´Ù. ¿Ö³ÄÇϸé...


string1="a = b"

if [ $string1 ]       # $string1 À» ¶Ç È¥ÀÚ ¾¹´Ï´Ù.
then
  echo "\"string1\" Àº ³ÎÀÌ ¾Æ´Õ´Ï´Ù."
else  
  echo "\"string1\" Àº ³ÎÀÔ´Ï´Ù."
fi  
# ÀÌÁ¦ "$string1"À» Äõ¿ìÆ® ÇØ ÁÖÁö ¾ÊÀ¸¸é Ʋ¸° °á°ú°¡ ³ª¿É´Ï´Ù!

exit 0
# Florian Wisser°¡ ³¯Ä«·Ó°Ô ÁöÀûÇØ ÁØ °Í¿¡µµ °¨»çÇÕ´Ï´Ù.

¿¹ 7-6. zmost

#!/bin/bash

# 'most'·Î gzipÀ¸·Î ¹­ÀÎ ÆÄÀÏÀ» º¸±â

NOARGS=65
NOTFOUND=66
NOTGZIP=67

if [ $# -eq 0 ] # if [ -z "$1" ] ¶ó°í ÇØµµ °°À½
# $1 ÀÌ Á¸ÀçÇÏÁö¸¸ ºñ¾î ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù:  zmost "" arg2 arg3
then
  echo "»ç¿ë¹ý: `basename $0` filename" >&2
  # Ç¥ÁØ¿¡·¯·Î ¿¡·¯ ¸Þ¼¼Áö¸¦ Ãâ·Â.
  exit $NOARGS
  # ½ºÅ©¸³Æ®ÀÇ Á¾·á ÄÚµå(¿¡·¯ ÄÚµå)·Î 65¸¦ ¸®ÅÏ.
fi  

filename=$1

if [ ! -f "$filename" ]   # $filename ¿¡ ºó Ä­ÀÌ µé¾î ÀÖÀ» ¼öµµ Àֱ⠶§¹®¿¡ Äõ¿ìÆÃÇØÁÝ´Ï´Ù.
then
  echo "$filename ÆÄÀÏÀ» ãÀ» ¼ö ¾ø½À´Ï´Ù!" >&2
  # Ç¥ÁØÃâ·ÂÀ¸·Î ¿¡·¯ ¸Þ¼¼Áö¸¦ Ãâ·Â.
  exit $NOTFOUND
fi  

if [ ${filename##*.} != "gz" ]
# º¯¼ö ġȯÀÎ Áß°ýÈ£¸¦ »ç¿ëÇÔ.
then
  echo "$1 ÆÄÀÏÀº gzip ÆÄÀÏÀÌ ¾Æ´Õ´Ï´Ù!"
  exit $NOTGZIP
fi  

zcat $1 | most

# 'most' ÆÄÀÏ ºä¾î ¾²±â('less'¿Í ºñ½Á).
# 'more'³ª 'less'·Î ¹Ù²ãµµ ±¦ÂúÀ½.


exit $?   # ÆÄÀÌÇÁÀÇ Á¾·á »óŸ¦ ¸®ÅÏ.
#  ½ºÅ©¸³Æ®´Â ¾î¶² °æ¿ìµçÁö°£¿¡ ¸¶Áö¸·¿¡ ½ÇÇàµÈ ¸í·É¾îÀÇ Á¾·á »óŸ¦ 
#+ ¸®ÅÏÇϱ⠶§¹®¿¡ ½ÇÁ¦·Î´Â "exit $?"°¡ ÇÊ¿ä¾ø½À´Ï´Ù.

º¹ÇÕ ºñ±³

-a

³í¸® and

exp1 -a exp2 ´Â exp1 °ú exp2 ¸ðµÎ ÂüÀÏ °æ¿ì¿¡¸¸ ÂüÀ» ¸®ÅÏÇÕ´Ï´Ù.

-o

³í¸® or

exp1 -o exp2 ´Â exp1 À̳ª exp2 Áß Çϳª¶óµµ ÂüÀÏ °æ¿ì¿¡ ÂüÀ» ¸®ÅÏÇÕ´Ï´Ù.

À̰͵éÀº ÀÌÁß ´ë°ýÈ£¿¡¼­ ¾²ÀÌ´Â Bash ºñ±³ ¿¬»êÀÚÀÎ &&¿Í ||¿Í ºñ½ÁÇÕ´Ï´Ù.
[[ condition1 && condition2 ]]
-o ¿Í -a ¿¬»êÀÚ´Â test ¸í·É¾î³ª Å×½ºÆ® ´ë°ýÈ£¾È¿¡¼­ µ¿ÀÛÇÕ´Ï´Ù.
if [ "$exp1" -a "$exp2" ]

º¹ÇÕ ºñ±³ ¿¬»êÀÚ°¡ ½ÇÁ¦·Î ¾²ÀÌ´Â ¿¹´Â ¿¹ 8-2 ¿Í ¿¹ 26-7¸¦ Âü°í.

ÁÖ¼®

[1]

S.C. °¡ ÁöÀûÇÑ´ë·Î º¹ÇÕ Å×½ºÆ®¿¡¼­´Â Äõ¿ìÆÃ¸¸À¸·Î ÃæºÐÄ¡ ¾ÊÀ» ¼öµµ ÀÖ½À´Ï´Ù. [ -n "$string" -o "$a" = "$b" ]ÀÇ °æ¿ì $stringÀÌ ºñ¾î ÀÖÀ» °æ¿ì, ¸î¸î Bash ¹öÀü¿¡¼­´Â ¿¡·¯¸¦ ³¾ ¼öµµ ÀÖ½À´Ï´Ù. ¾ÈÀüÇÏ°Ô °¡·Á¸é ºñ¾î ÀÖ´Â °ªÀ» °¡Áú °¡´É¼ºÀÌ ÀÖ´Â º¯¼ö¿¡ ±ÛÀÚ¸¦ µ¡ºÙ¿© ÁÖ¸é µË´Ï´Ù. [ "x$string" != x -o "x$a" = "x$b" ]("x's"´Â ¸ðµÎ »ó¼âµË´Ï´Ù).