3.28. ¸î °¡Áö ÁöÀúºÐÇÑ °Íµé(Gotchas)

 

Åõ¶õµµÆ®(Turandot): ¼ö¼ö²²³¢´Â ¼¼ °³, ±×·¯³ª Á×À½Àº Çϳª!

Ä®¶óÇÁ(Calaf): ¾Æ´Ï¿À, ¼ö¼ö²²³¢´Â ¼¼ °³, »ý¸íÀÌ Çϳª!

 ÇªÄ¡´Ï(Puccini)

¿¹¾à¾î³ª ¿¹¾à ¹®ÀÚ¸¦ º¯¼ö À̸§¿¡ ÇÒ´çÇϱâ
var1=case
# ¹®Á¦°¡ »ý±é´Ï´Ù.
var2=23skidoo
# ¿ª½Ã ¹®Á¦°¡ ÀÖ½À´Ï´Ù. ¼ýÀÚ·Î ½ÃÀ۵Ǵ º¯¼ö¸íÀ» ½©¿¡ ÀÇÇØ ¿¹¾àµÅ ÀÖ½À´Ï´Ù.
# ´ë½Ã var2=_23skidoo ¸¦ ¾²¼¼¿ä. ¹ØÁÙ·Î ½ÃÀÛÇÏ´Â º¯¼ö´Â ±¦Âú½À´Ï´Ù.
var3=xyz((!*
# ´õ ³ª»Û ¹®Á¦°¡ ¹ß»ýÇÕ´Ï´Ù.

º¯¼ö¸í¿¡ ÇÏÀÌÇÂÀ̳ª ´Ù¸¥ ¿¹¾à ¹®ÀÚ¸¦ ¾²´Â °Í
var-1=23
# ´ë½Å 'var_1' ¸¦ ¾²¼¼¿ä.

ÀûÀýÄ¡ ¸øÇÑ °÷¿¡ ºó Ä­À» ¾²´Â °Í(´Ù¸¥ ÇÁ·Î±×·¡¹Ö ¾ð¾îµé°ú´Â ´Ù¸£°Ô bash´Â ºó Ä­¿¡ ´ëÇØ¼­ Á» ±î´Ù·Î¿î ¹ÝÀÀÀ» º¸ÀÔ´Ï´Ù).
var1 = 23
# 'var1=23' °¡ ¸Â½À´Ï´Ù.
let c = $a - $b
# 'let c=$a-$b' ³ª 'let "c = $a - $b"' °¡ ¸Â½À´Ï´Ù.
if [ $a -le 5]
# 'if [ $a -le 5 ]' °¡ ¸Â½À´Ï´Ù.

ÃʱâÈ­ ¾È µÈ º¯¼ö ¾²±â(°ªÀÌ ÇÒ´çµÇ±â Àü¿¡ º¯¼ö¸¦ ¾²´Â °Í) ÃʱâÈ­ ¾È µÈ º¯¼öÀÇ °ªÀº 0ÀÌ ¾Æ´Ï¶ó "³Î(null)"ÀÔ´Ï´Ù.

Å×½ºÆ® ¹®¿¡¼­ =°ú -eq¸¦ ¼¯¾î ¾²±â. =´Â ¹®ÀÚ¸¦ ºñ±³ÇÏ´Â °ÍÀ̰í, -eq´Â ¼ýÀÚ¸¦ ºñ±³ÇÏ´Â °ÍÀÓÀ» ¸í½ÉÇϼ¼¿ä.
	if [ $a = 273 ] # Ʋ·ÈÁÒ
	if [ $a -eq 273 ] # ÀÌ°Ô ¸Â½À´Ï´Ù.
	

°¡²ûÀº "Å×½ºÆ®" ´ë°ýÈ£([ ]) ¾È¿¡¼­ ¾²ÀÌ´Â º¯¼ö¸¦ Å« µû¿ÈÇ¥·Î ¹­¾îÁà¾ß ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ÀÌ·¸°Ô ¾È ÇÏ¸é ¿¹»óÄ¡ ¸øÇÑ °á°ú°¡ ³ª¿Ã ¼ö ÀÖ½À´Ï´Ù. 예 3-13, 예 3-73, 예 3-17¸¦ Âü°íÇϼ¼¿ä.

½ºÅ©¸³Æ® ¼ÒÀ¯ÀÚ°¡ ½ÇÇà ±ÇÇÑÀÌ ¾ø¾î¼­ ¸í·É¾î°¡ ½ÇÇà µÇÁö ¸ø ÇÒ °æ¿ìµµ ÀÖ½À´Ï´Ù. ¸í·É¾î ÁÙ¿¡¼­ ½ÇÇà ½ÃŰÁö ¸øÇÏ´Â ¸í·É¾î´Â ½ºÅ©¸³Æ®¿¡¼­ ½ÇÇà ½ÃŲ´Ù°í ÇØµµ ¿ª½Ã ½ÇÆÐÇÒ °ÍÀÔ´Ï´Ù. ÇØ°áÃ¥Àº ¸í·É¾îÀÇ ¼Ó¼ºÀ» ¹Ù²ãÁÖ´Â °ÍÀε¥ ¾Æ¸¶µµ ´ç¿¬ÇÏ°Ô ·çÆ®·Î suid ºñÆ®¸¦ ¼³Á¤ÇØ ÁÖ´Â °ÍÀÔ´Ï´Ù.

½ºÅ©¸³Æ® Çì´õ°¡ #!/bin/bashÀÎ °æ¿ì¿¡ bash ¹öÀü 2ÀÇ ±â´É(´ÙÀ½¿¡ ³ª¿É´Ï´Ù)À» ¾²·Á°í ÇÒ ¶§, ¿¡·¯ ¸Þ¼¼Áö¿Í ÇÔ²² ½ÇÆÐÇÒ °æ¿ì°¡ ÀÖ½À´Ï´Ù. ¾Æ¸¶µµ ½Ã½ºÅÛ¿¡ ±âº»À¸·Î ¼³Ä¡µÈ bash°¡ ¿¹Àü ¹öÀüÀÏ °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù. ÀÌ·± °æ¿ì¿¡´Â ½ºÅ©¸³Æ® Çì´õ¸¦ #!/bin/bash2¶ó°í ¹Ù²ã¼­ ÇØ º¸¼¼¿ä.

½ºÅ©¸³Æ®¿¡ "suid"¸¦ °Å´Â °ÍÀº ÀϹÝÀûÀ¸·Î ¾È ÁÁÀº »ý°¢ÀÔ´Ï´Ù. ½Ã½ºÅÛ º¸¾È¿¡ ¾È ÁÁ±â ¶§¹®Àε¥, ½Ã½ºÅÛ °ü¸®¿ë ½ºÅ©¸³Æ®¶ó¸é ÀÏ¹Ý »ç¿ëÀÚ°¡ ¾Æ´Ñ ·çÆ®·Î ½ÇÇà½ÃŰ±â ¹Ù¶ø´Ï´Ù.