9.7. ÀÌÁß¼Ò°ýÈ£(The Double Parentheses Construct)

let ¸í·É¾î¿Í ºñ½ÁÇÏ°Ô ((...)) µµ »ê¼ú È®Àå°ú °è»êÀ» ÇÒ ¼ö ÀÖ½À´Ï´Ù. a=$((5 + 3)) °°Àº °£´ÜÇÑ ÇüÅÂÀÇ ½ÄÀº "a" ¸¦ "5 + 3"ÀÎ 8·Î ¸¸µé¾î ÁÝ´Ï´Ù. ¾î·µç ÀÌ ÀÌÁß¼Ò°ýÈ£´Â C ÇüÅÂÀÇ º¯¼ö Á¶ÀÛÀ» °¡´ÉÇÏ°Ô ÇØÁÖ´Â ¸ÞÄ«´ÏÁòÀÔ´Ï´Ù.

¿¹ 9-22. C ÇüÅÂÀÇ º¯¼ö Á¶ÀÛ

#!/bin/bash
# ((...)) ¸¦ ½á¼­ C ÇüÅ·Πº¯¼ö Á¶ÀÛÇϱâ.


echo

(( a = 23 ))  # "=" ¾çÂÊ¿¡ ºó Ä­À» µÎ¾î º¯¼ö ¼¼ÆÃÇϱâ, C ÇüÅÂ.
echo "a (initial value) = $a"

(( a++ ))     # 'a'¸¦ ÈÄÀ§Áõ°¡, C ÇüÅÂ.
echo "a (after a++) = $a"

(( a-- ))     # 'a'¸¦ ÈÄÀ§°¨¼Ò, C ÇüÅÂ.
echo "a (after a--) = $a"


(( ++a ))     # 'a'¸¦ ÀüÀ§Áõ°¡, C ÇüÅÂ.
echo "a (after ++a) = $a"

(( --a ))     # 'a'¸¦ ÀüÀ§°¨¼Ò, C ÇüÅÂ.
echo "a (after --a) = $a"

echo

(( t = a<45?7:11 ))   # C ÇüÅÂÀÇ 3Áß ¿¬»êÀÚ.
echo "If a < 45, then t = 7, else t = 11."
echo "t = $t "        # µÇ³×¿ä!

echo


# -----------------------------
# À̽ºÅÍ ¿¡±×(Easter Egg) °æ°í!
# -----------------------------
#  Bash¿¡´Â ksh¿¡¼­ ¸¹Àº ºÎºÐÀ» µû¿Â C ÇüÅÂÀÇ ¿¬»êÀÚ°¡ 
#+ ¹®¼­È­µÇÁö ¾ÊÀº ÇüÅ·Π¸¹ÀÌ Á¸ÀçÇÕ´Ï´Ù.
#  Bash ¹®¼­¿¡¼­´Â ((...)) ¸¦ ½© ¿¬»êÀ̶ó°í ÇÕ´Ï´Ù¸¸,
#+ ±× ÀÌ»óÀÇ °ÍÀÌ Á¸ÀçÇÕ´Ï´Ù.
#  ºñ¹ÐÀ» ¹àÇô¼­ ¹Ì¾ÈÇØ¿ä, Chet.

# ((...)) ¸¦ ¾´ "for", "while" ·çÇÁµµ Âü°íÇϼ¼¿ä.

# ÀÌ À̽ºÅÍ ¿¡±×µéÀº Bash ¹öÀü 2.04 ÀÌÈÄ¿¡¼­¸¸ µ¿ÀÛÇÕ´Ï´Ù.

exit 0

¿¹ 10-11 Âü°í.