10. Misc

10.1. read·Î »ç¿ëÀÚ ÀÔ·Â ¹Þ±â

¸¹Àº °æ¿ì ÇÁ·ÒÇÁÆ® »ó¿¡¼­ »ç¿ëÀÚÀÇ ÀÔ·ÂÀ» ¹Þ¾Æ¾ß ÇÒ Áöµµ ¸ð¸¥´Ù. ´ÙÀ½Àº ÇÁ·ÒÇÁÆ®¿¡¼­ »ç¿ëÀÚÀÇ ÀÔ·ÂÀ» ¹Þ¾ÆµéÀÌ´Â ¹æ¹ýÀÌ´Ù.
 
#!/bin/bash 
echo Please, enter your name 
read NAME 
echo "Hi $NAME!" 

ÀÌ ¹æ¹ýÀº 2°³ ÀÌ»óÀÇ ÀÔ·ÂÀ» µ¿½Ã¿¡ ¹Þ¾Æ µéÀÏ ¼ö ÀÖ´Ù.
 
#!/bin/bash 
echo Please, enter your firstname and lastname 
read FN LN 
echo "Hi! $LN, $FN !" 

10.2. »ê¼ú °è»ê

¸í·É ÇàÀ̳ª ¼Ð¿¡¼­ ´ÙÀ½°ú °°ÀÌ ÀÔ·ÂÇØ º¸ÀÚ.

echo 1 + 1

¹¹°¡ ³ª¿À°Ú´Â°¡? ÀÔ·ÂÇÑ ±×´ë·Î ³ª¿Í ¹ö¸°´Ù! Èì, ÀÌ °æ¿ì¿¡ 2¶ó´Â °á°ú°¡ ³ª¿Â´Ù¸é ¹º°¡ ½Ç¼öÇÑ °Å´Ù. ±×·¸´Ù¸é ¾î¶»°Ô Çϸé ÀÌ °è»êÀÇ °á°ú¸¦ È­¸é¿¡¼­ º¼ ¼ö ÀÖÀ»±î. ¹æ¹ýÀº °£´ÜÇÏ´Ù. À̰ÍÀÌ ¹®ÀÚ¿­ÀÌ ¾Æ´Ï¶ó °è»êÀ̶ó´Â °ÍÀ» ÀνÄÇÏ¸é µÇ´Â °ÍÀ̰í, ´õ ³ª¾Æ°¡ ÀÌ °è»êÀ» º¯¼ö¿¡ ³Ö¾î ¹ö¸®¸é echo ¸í·ÉÀ¸·Î º¼ ¼ö ÀÖ´Â °ÍÀº ÀÎÁö»óÁ¤ÀÎ °ÍÀÌ´Ù. ^^ ±×·¸´Ù~! ´äÀº ¹Ù·Î Àú°ÍÀÌ´Ù!

echo $((1+1))

Á» ´õ ³í¸®ÀûÀ̰í Á¦´ë·Î µÈ ¹æ¹ýÀº Àú°ÍÀÌ´Ù. ¼öÇÐÀûÀΠǥÇöÀ¸·Î ÇÑ ¹æ¿¡ ÀνÄÇØ ¹ö¸°´Ù. È¿°ú´Â È®½ÇÇÏ´Ù!!

echo $[1+1]

³ª´°¼ÀÀ» Á¦´ë·Î ÇÏ°í ½Í°Å³ª ȤÀº ´õ º¹ÀâÇÑ ¼öÇÐ °è»êÀ» ÇÏ°í ½Í´Ù¸é ¼öÇÐÀûÀÎ °è»êÀ» bc¿¡¼­ ó¸®ÇØ ¹ö¸®´Â °ÍÀÌ Çö¸íÇÏ´Ù. ¾Æ´Â ºÐÀº ´Ù ¾Æ´Â À̾߱âÀÌÁö¸¸ ¸ð¸£´Â ºÐÀ» À§ÇØ ¾ÆÁÖ Âª°Ô ¶°µé¾î º¸°Ú´Ù. bc´Â Å͹̳ο¡¼­ ±×³É ÀÔ·ÂÇØ¼­ »ç¿ëÇÒ ¼ö ÀÖ´Â °è»ê±â·Î¼­, ¾ÆÁÖ Á¤¹ÐÇÑ ¼Ò¼öÁ¡ °è»ê±îÁö ÇÒ ¼ö ÀÖ°í, °øÇÐ °è»êµµ ½Ä¸¸ ¼¼¿ï ¼ö ÀÖ´Ù¸é À¢¸¸Çϸé Ç® ¼ö Àִµ¥´Ù°¡ ¸¶Ä¡ ¼öÇÐ ÆÐŰÁö¸¦ »ç¿ëÇϵíÀÌ, ¾î´À Á¤µµ °£´ÜÇÑ ½ºÅ©¸³Æ® ÇüŸ¦ ¸¸µé¾î ¼öÇÐ °è»êÀ» ÇÒ ¼öµµ ÀÖ´Â, ±×¾ß¸»·Î ³¡³»ÁÖ´Â ¹°°ÇÀÌ´Ù. À̾߱Ⱑ ±æ¾îÁ³´Âµ¥, ¹é°ßÀÌ ºÒ¿©ÀÏÇàÀ̶ó°í ¹¹°¡ ´Ù¸¥Áö Çѹø º¸±â³ª ÇÏÀÚ.

3/4¸¦ °è»êÇÑ´Ù°í "echo $[3/4]" ¶ó°í ÀÔ·ÂÇØ º¸ÀÚ. ¿ø·¡ Á¤»óÀûÀÎ ´äÀº 0.75À̰ÚÁö¸¸ ¿©±â¿¡¼­´Â ¸ÛûÇϰԵµ 0À̶ó°í ³ª¿Ã °ÍÀÌ´Ù. ±×µµ ±×·² °ÍÀÌ, ¹è½¬¿¡¼­´Â ¿ÀÁ÷ Á¤¼ö °è»ê¸¸ ÇÒ ¼ö Àֱ⠶§¹®ÀÌ´Ù. "echo 3/4|bc -l"¶ó°í ÀÔ·ÂÇÏ¿© ÀÌ ³»¿ëÀ» bc·Î º¸³»¸é 0.75¶ó´Â ´äÀ» ¾òÀ» ¼ö ÀÖ´Ù.

10.3. bashÀÇ °æ·Î ã±â

ÀÌ ºÎºÐÀº ¸¶ÀÌÅ©°¡ Ãß°¡ÇØ ÁØ ºÎºÐÀÌ´Ù.

¿ì¸®´Â ´ë°³ ½ºÅ©¸³Æ®ÀÇ Ã¹ ÁÙ¿¡ #!/bin/bash ¶ó°í ÀÔ·ÂÇÏÁö¸¸, ¿©±â¿¡¼­´Â ´Ù¸¥ °æ·Î¿¡ bash°¡ ÀÖÀ» ¶§ ±×°ÍÀ» ã¾Æ³»´Â ¹æ¹ýÀ» °£´ÜÈ÷ ¤°í ³Ñ¾î°¡°Ú´Ù. ´ëºÎºÐÀÇ ½Ã½ºÅÛ¿¡¼­´Â /bin/bashÀÇ °æ·Î¿¡ ÀÖ°ÚÁö¸¸, ¸ðµç ½Ã½ºÅÛÀÌ ±×·¸´Ù°í´Â ¸»ÇÒ ¼ö ¾ø±â ¶§¹®ÀÌ´Ù.

'find ./ -name bash' ¸í·ÉÀº ·çÆ® µð·ºÅ丮ºÎÅÍ ¸ðµç µð·ºÅ丮¸¦ ¾µ¾î³»¸®¸ç bash¸¦ ã´Â´Ù. ±×·¯³ª ÀÌ·¸°Ô ±îÁö ÇÒ °ÍÀº ¾ø´Ù. bash°¡ ÀÖ´Â À§Ä¡¶ó´Â °ÍÀº ´ë°³ ´ÙÀ½ Áß ÇϳªÀÎ °ÍÀÌ´Ù. ÀÌ °æ·Î¸¦ ¸ðµÎ È®ÀÎÇØ º¸°íµµ ¾øÀ» ¶§¿¡¾ß find¸¦ ½á º¸ÀÚ. »ç½Ç, ¸ðµç µð·ºÅ丮¸¦ È®ÀÎÇÏ´Â °ÍÀº Á» ½Ã°£ ³¶ºñ´Ù.

ls -l /bin/bash

ls -l /sbin/bash

ls -l /usr/local/bin/bash

ls -l /usr/bin/bash

ls -l /usr/sbin/bash

ls -l /usr/local/sbin/bash

ȤÀº 'which bash'¸¦ »ç¿ëÇÏ¿© ãÀ» ¼öµµ ÀÖ´Ù. ÃëÇâ¿¡ µû¶ó ½á º¸ÀÚ.

10.4. ÇÁ·Î±×·¥ÀÌ µÇµ¹¸®´Â °ª ¹Þ±â

bash¿¡¼­, ÇÁ·Î±×·¥ÀÌ µÇµ¹¸®´Â °ªÀº Ưº°ÇÑ º¯¼öÀÎ $?·Î ¹Þ´Â´Ù.

´ÙÀ½Àº ¾î¶»°Ô ÇÁ·Î±×·¥ÀÌ µÇµ¹¸®´Â °ªÀ» ¹Þ¾Æ³»´À³Ä¸¦ º¸¿© ÁÖ´Â °ÍÀÌ´Ù. ³ª´Â ¿©±â¿¡¼­ dada ¶ó´Â µð·ºÅ丮°¡ Á¸ÀçÇÏÁö ¾Ê´Â´Ù°í °¡Á¤ÇϰڴÙ. È­¸é¿¡ ¹º°¡ ³ª¿ÀÁö ¾Ê´Â°¡?
 
#!/bin/bash 
cd /dada &> /dev/null 
echo rv: $? 
cd $(pwd) &> /dev/null 
echo rv: $? 

10.5. ¸í·É ½ÇÇà °á°ú ÀúÀåÇϱâ

¸ÕÀú MySQLÀÌ ±ò·Á ÀÖ´Ù´Â °¡Á¤ ÇÏ¿¡¼­ ÇÏ´Â ¸»ÀÌÁö¸¸, À̹ø¿¡ ¼³¸íÇÒ °£´ÜÇÑ ½ºÅ©¸³Æ®´Â ÀÌ ½Ã½ºÅÛ¿¡ Á¸ÀçÇÏ´Â ¸ðµç µ¥ÀÌÅÍ º£À̽ºÀÇ ¸ðµç Å×ÀÌºí ¸ñ·ÏÀ» º¼ ¼ö ÀÖ°Ô ÇÏ´Â °ÍÀÌ´Ù. ¹°·Ð mysql ¸í·ÉÀ» »ç¿ëÇÏ´Â µ¥ ÇÊ¿äÇÑ »ç¿ëÀÚ À̸§°ú ÆÐ½º¿öµå´Â ÀÖ¾î¾ß ÇÒ °ÍÀÌ´Ù. ^^
 
#!/bin/bash 
DBS=`mysql -uroot -e"show databases"` 
for b in $DBS ; 
do 
mysql -uroot -e"show tables from $b" 
done 

10.6. ´ÙÁß ¼Ò½ºÆÄÀÏ »ç¿ëÇϱâ

¿©·¯ ÆÄÀÏ¿¡ °ÉÃÄ ¸í·É ¼Ò½º¸¦ ÀÔ·ÂÇÏ¿© ½ÇÇàÇÒ ¼öµµ ÀÖ´Ù.

ÇÊÀÚ´Â ÀÌ ºÎºÐÀ» ±×³É ¾Ë¾Æ¼­ ÇØ º¸¶ó°í ºñ¿ö µÎ¾ú°í ¾ÆÁ÷±îÁö ä¿ï ±â¹Ì°¡ º¸ÀÌÁö¸¦ ¾ÊÁö¸¸..... ¹¹, ¸»ÇÏÀÚ¸é °£´ÜÇÏ´Ù. ¿¹ÄÁ´ë, ÀÎÅͳݿ¡¼­ ¿øÇÏ´Â ¸¸È­ ±×¸² ÆÄÀÏÀ» ¸ÅÀÏ ¾ÆÄ§ ´Ù¿î·Îµå ¹Þ´Â ½ºÅ©¸³Æ®°¡ ÀÖ´Ù°í °¡Á¤ÇÏÀÚ. ÀÌ ¸¸È­ ±×¸²À» ¸ÅÀÏ ¹ÙÅÁ È­¸é¿¡ ±ò¾Æ ³õ°í ½Í´Ù¸é ÀÌ ³»¿ëÀ» »õ·Î¿î ½ºÅ©¸³Æ®¿¡ Åë°·Î Áý¾î ³Ö¾îµµ »ó°ü ¾ø°ÚÁö¸¸, ¿øÇÏ´Â ±×¸²À» ¹ÙÅÁ È­¸é¿¡ ÀÚµ¿À¸·Î ±ò¾Æ ³õ´Â ½ºÅ©¸³Æ®¿¡¼­ ÀÌ ±×¸²À» ´Ù¿î¹Þ´Â ½ºÅ©¸³Æ®¸¦ ºÒ·¯µé¿© ½ÇÇàÇØµµ ¾Æ¹« »ó°üÀÌ ¾ø´Ù´Â ¶æÀÌ´Ù. ÀÌ¿Í °°Àº ´ÙÁß ¼Ò½ºÆÄÀÏÀº ´Ù¸¥ ÇÁ·Î±×·¥¿¡¼­µµ °°Àº ±â´ÉÀ» ¶Ç »ç¿ëÇÒ ¶§ »õ ÇÁ·Î±×·¥ ¾È¿¡¼­ ºÒ·¯ µéÀÌ´Â °Í ¸¸À¸·Îµµ ÃæºÐÈ÷ Á¦ ±â´ÉÀ» Çϱ⠶§¹®¿¡ Æí¸®ÇÏ°Ô ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù.