3.6. ¿¬»êÀÚ À̾߱â

3.6.1. ¿¬»êÀÚ

=

»ê¼ú½Ä°ú ¹®ÀÚ¿­ ´ëÀÔ ¸ðµÎ¸¦ ¾Ë¾Æ¼­ ÇØÁÖ´Â ´Ù±â´É ´ëÀÔ ¿¬»êÀÚ

var=27
category=minerals

¹®ÀÚ¿­ ºñ±³¿¡¼­µµ ¾²ÀÏ ¼ö ÀÖ½À´Ï´Ù.

if [ $string1 = $string2 ]
then
   command
fi

´ÙÀ½ ¿¬»êÀÚµéÀº º¸Åë expr À̳ª let°ú °°ÀÌ ¸¹ÀÌ ¾²ÀÔ´Ï´Ù.

»ê¼ú ¿¬»ê

+

´õÇϱâ

-

»©±â

*

°öÇϱâ

/

³ª´©±â

%

³ª¸ÓÁö(Á¤¼ö ³ª´©±â¿¡¼­ ³ª¸ÓÁö °ª)

+=

"plus-equal" (º¯¼ö¸¦ »ó¼ö°ª¸¸Å­ Áõ°¡)

`expr $var+=5` ´Â var ¸¦ 5 ¸¸Å­ Áõ°¡.

-=

"minus-equal" (º¯¼ö¸¦ »ó¼ö°ª ¸¸Å­ °¨¼Ò)

*=

"times-equal" (º¯¼ö¸¦ »ó¼ö°ªÀÇ ¹è¼ö ¸¸Å­ Áõ°¡)

`expr $var*=4` ´Â var ¸¦ 4¹è Áõ°¡.

/=

"slash-equal" (º¯¼ö¸¦ »ó¼ö°ªÀ¸·Î ³ª´®)

%=

"mod-equal" (º¯¼ö¸¦ »ó¼ö·Î ³ª´« ³ª¸ÓÁö °ª)

ºñÆ® ´ÜÀ§ ³í¸® ¿¬»êÀº ½© ½ºÅ©¸³Æ®¿¡¼­ ÀÚÁÖ ¾²ÀÌÁö´Â ¾ÊÁö¸¸ Æ÷Æ®³ª ¼ÒÄÏÂÊ¿¡¼­ ÁÖ·Î ¾²ÀÔ´Ï´Ù. "ºñÆ® Á¶ÀÛ"Àº ¼Óµµ°¡ ºü¸¥ C³ª C++°°Àº ÄÄÆÄÀÏ ¾ð¾îÂÊ¿¡ ´õ °ü·ÃÀÌ ÀÖ½À´Ï´Ù.

<<

ºñÆ® ¿ÞÂÊ ½¬ÇÁÆ® (½¬ÇÁÆ® ¿¬»ê Çѹø´ç 2·Î °öÇÔ)

<<=

"left-shift-equal"

"var <<= 2" ´Â var¸¦ 2 ºñÆ®¸¸Å­ ¿ÞÂÊÀ¸·Î ½¬ÇÁÆ® (4·Î °öÇÔ)

>>

ºñÆ® ¿À¸¥ÂÊ ½¬ÇÁÆ® (ºñÆ® ¿¬»ê Çѹø´ç 2·Î ³ª´®)

>>=

"right-shift-equal" (<<=¿Í ¹Ý´ë)

&

ºñÆ® AND

&=

"ºñÆ® AND-EQUAL"

|

ºñÆ® OR

|=

"ºñÆ® OR-equal"

~

ºñÆ® negate

!

ºñÆ® NOT

^

ºñÆ® XOR

^=

"ºñÆ® XOR-equal"

°ü·Ã Å×½ºÆ®

<

º¸´Ù ÀÛÀº

>

º¸´Ù Å«

<=

º¸´Ù À۰ųª °°Àº

>=

º¸´Ù Å©°Å³ª °°Àº

==

°°Àº

!=

°°Áö ¾ÊÀº

&&

³í¸® AND

if [ $condition1 ] && [ $condition2 ]
# condition1°ú condition2°¡ µÑ ´Ù ÂüÀ̶ó¸é...

참고: && ´Â »óȲ¿¡ µû¶ó AND list¿¡ ¾²¿©¼­ ¸í·É¾î ¿©·¯°³¸¦ ºÙ¿©¼­ ¾µ ¶§µµ »ç¿ëµË´Ï´Ù(3.21절 Âü°í).

||

³í¸® OR

if [ $condition1 ] || [ $condition2 ]
# condition1À̳ª condition2 µÑ Áß¿¡ Çϳª¶óµµ ÂüÀ̶ó¸é...

예 3-15. && ¿Í ||¸¦ ¾´ º¹ÇÕ Á¶°Ç Å×½ºÆ®

#!/bin/bash

a=24
b=47

if [ $a -eq 24 ] && [ $b -eq 47 ]
then
  echo "#1 Å×½ºÆ® ¼º°ø."
else
  echo "#1 Å×½ºÆ® ½ÇÆÐ."
fi

# ERROR:
# if [ $a -eq 24 && $b -eq 47 ]


if [ $a -eq 98 ] || [ $b -eq 47 ]
then
  echo "#2 Å×½ºÆ® ¼º°ø."
else
  echo "#2 Å×½ºÆ® ½ÇÆÐ."
fi


# -a ¿Í -o ¿É¼ÇÀº º¹ÇÕ Á¶°Ç Å×½ºÆ®¿¡¼­ ¾µ ¼ö ÀÖ´Â
# ´Ù¸¥ ¹æ¹ýÀÔ´Ï´Ù.
# ÀÌ Á¡À» ÁöÀûÇØÁØ Patrick Callahan¿¡°Ô °¨»ç¸¦ Ç¥ÇÕ´Ï´Ù.


if [ $a -eq 24 -a $b -eq 47 ]
then
  echo "#3 Å×½ºÆ® ¼º°ø."
else
  echo "#3 Å×½ºÆ® ½ÇÆÐ."
fi


if [ $a -eq 98 -o $b -eq 47 ]
then
  echo "#4 Å×½ºÆ® ¼º°ø."
else
  echo "#4 Å×½ºÆ® ½ÇÆÐ."
fi


a=rhino
b=crocodile
if [ $a = rhino ] && [ $b = crocodile ]
then
  echo "#5 Å×½ºÆ® ¼º°ø."
else
  echo "#5 Å×½ºÆ® ½ÇÆÐ."
fi

exit 0

3.6.2. ¼ýÀÚ »ó¼ö

½© ½ºÅ©¸³Æ®´Â ±âº»ÀûÀ¸·Î ¼ýÀÚ¸¦ 10Áø¼ö·Î ÇØ¼®ÇÕ´Ï´Ù. ¸¸¾à¿¡ ¼ýÀÚ ¾Õ¿¡ 0ÀÌ ÀÖ´Ù¸é 8 Áø¼ö(8 Áø¹ý)À̰í 0x°¡ ÀÖ´Ù¸é 16 Áø¼ö(16 Áø¹ý)ÀÔ´Ï´Ù. #ÀÌ µé¾î°£ ¼ýÀÚ´Â Áø¹ý#¼ýÀÚ·Î ÇØ¼®ÇÕ´Ï´Ù(ÀÌ ¶§´Â ¹üÀ§ Á¦ÇÑÀÌ ÀÖ½À´Ï´Ù).

예 3-16. ¼ýÀÚ »ó¼ö Ç¥±â¹ý:

#!/bin/bash

# ¼ýÀÚ Ç¥±â¹ý.

# 10Áø¼ö
let "d = 32"
echo "d = $d"
# º°·Î Ưº°ÇÑ °Ô ¾ø½À´Ï´Ù.


# 8Áø¼ö: '0' ´ÙÀ½¿¡ ³ª¿À´Â ¼ýÀÚ
let "o = 071"
echo "o = $o"
# °á°ú´Â 10Áø¼ö·Î ³ªÅ¸³³´Ï´Ù.

# 16Áø¼ö: '0x'³ª '0X' ´ÙÀ½¿¡ ³ª¿À´Â ¼ýÀÚ
let "h = 0x7a"
echo "h = $h"

# ´Ù¸¥ Áø¹ý: Áø¼ö#¼ýÀÚ
# Áø¼ö´Â(BASE)´Â 2 ¿Í 64 »çÀÌÀÔ´Ï´Ù.
let "b = 32#77"
echo "b = $b"
# ÀÌ Ç¥±â¹ýÀº ¾ÆÁÖ Á¦ÇÑµÈ ¹üÀ§ÀÇ ¼ýÀÚ¿¡¼­¸¸ µ¿ÀÛÇÕ´Ï´Ù.
let "c = 2#47"  # Error: ¹üÀ§ Ãʰú.
echo "c = $c"


exit 0