Á¦ ¸ñ : [9608]À¯´Ð½º ½Ã½ºÅÛ °ü¸®ÀÚ(2) C-¼Ð È÷½ºÅ丮 ±â´É¿¡¼­ ¾²ÀÌ´Â ¾à¾î »ç¿ëÇß´ø À̺¥Æ®ÀÇ ÀçÈ£Ãâ {{{{!n }}{{n¹ø° À̺¥Æ®(event) ÀçÈ£Ãâ }}{{!-n }}{{ÇöÀç À̺¥Æ®(event)¿¡¼­ n¹ø° ÀÌÀüÀÇ À̺¥Æ® È£Ãâ }}{{!c }}{{¹®ÀÚ¿­ c·Î ½ÃÀÛÇÏ´Â °¡Àå ÃÖ±ÙÀÇ À̺¥Æ® }}{{!?c? }}{{¹®ÀÚ¿­ c ¸¦ Æ÷ÇÔÇÏ´Â °¡Àå ÃÖ±ÙÀÇ À̺¥Æ® }}[ Ç¥ 4 ] È÷½ºÅ丮¿¡¼­ À̺¥Æ® ÀçÈ£Ãâ }} (¿¹) {{{{!12 }}{{È÷½ºÅ丮 ¸®½ºÆ®¿¡¼­ 12¹ø° À̺¥Æ®¸¦ ¼öÇà }}{{!-1 }}{{¹Ù·Î Àü¿¡ ¼öÇàÇß´ø À̺¥Æ® ¼öÇà (!! ¿Í µ¿ÀÏ) }}{{!ca }}{{ca·Î ½ÃÀÛÇÏ´Â °¡Àå ÃÖ±Ù À̺¥Æ®¸¦ ¼öÇà }}{{!?caw? }}{{caw¹®ÀÚ¿­À» Æ÷ÇÔÇÏ´Â °¡Àå ÃÖ±Ù À̺¥Æ®¸¦ ¼öÇà }} }} À̺¥Æ®³»ÀÇ ´Ü¾îÀÇ ÂüÁ¶ {{{{:n }}{{À̺¥Æ®³»ÀÇ n+1 ¹ø° ´Ü¾î (:0 Àº ÀϹÝÀûÀ¸·Î ¸í·É¾î°¡ µÇ°í :1 Àº ù ¹ø° ÀÎÀÚ°¡ µÈ´Ù.) }}{{:^ or ^ }}{{µÎ ¹ø° ´Ü¾î(:1°ú µ¿ÀÏ) }}{{:$ }}{{À̺¥Æ®ÀÇ ³¡ ´Ü¾î }}{{:* or * }}{{:0(¸í·É¾î) ÀÌÈÄ¿¡ ³ª¿À´Â ¸ðµç ´Ü¾î(¸ðµç ÀÎÀÚ ¸®½ºÆ®) }}[ Ç¥ 5 ] À̺¥Æ®³»ÀÇ ´Ü¾î ÂüÁ¶ }} (¿¹) {{{{!32:3 }}{{32¹ø° ¸í·É¾îÀÇ 3¹ø° ´Ü¾î }}{{!4$ }}{{4¹ø° ¸í·É¾îÀÇ ³¡ ÀÎÀÚ }}{{ !5* }}{{5¹ø° ¸í·É¾îÀÇ ÀÎÀÚµé }} }} ±× ¿ÜÀÇ ±ÔÄ¢µé {{{{!! }}{{¹Ù·Î ÀüÀÇ À̺¥Æ® ¼öÇà(!-1°ú µ¿ÀÏ) }}{{! }}{{À§¿Í µ¿ÀÏÇÑ ±â´ÉÀ̳ª ´Ü¾î ÂüÁ¶¾à¾î°¡ À̾ »ç¿ëµÉ °æ¿ì¿¡ »ç¿ë }} }} (¿¹) (¹æ±Ý ls /usr ¸í·É¾î ¼öÇàÇß´Ù°í °¡Á¤) {{{{!!bin }}{{ls /usr/bin ÀÇ¹Ì }}{{cd !$ }}{{cd /usr/bin }} }} ¼Ð ÇÁ·Î±×·¡¹Ö ÀÚ ÀÌÁ¦ºÎÅÍ º»°ÝÀûÀ¸·Î ¼Ð ÇÁ·Î±×·¡¹Ö¿¡ ´ëÇؼ­ ´Ù·çµµ·Ï ÇÏ°Ú´Ù. ´Ù¼Ò ¾î ·Á¿ïÁö ¸ð¸£°ÚÁö¸¸ ²ÙÁØÈ÷ ÇÏ´Â »ç¶÷¿¡°Ô´Â ¸¹Àº µµ¿òÀÌ µÉ °ÍÀ¸·Î »ý°¢µÈ ´Ù. ¿©±â¼­ ¼Ð¿¡ ´ëÇÑ ¼³¸íµéÀ» °¢°¢ ³ª´©¾î¼­ ¼³¸íÇϵµ·Ï ÇÏ°Ú´Ù. º» ¼Ð(Bourne Shell) º»¼ÐÀÇ º¯¼ö º»¼Ð¿¡¼­ Á¤ÀÇÇÏ°íÀÚ ÇÏ´Â º¯¼öÀÇ ¼±¾ðÀº 'º¯¼öÀ̸§ = °ª' ÀÇ ÇüÅ·ΠÁ¤ ÀÇ¿Í ÃʱâÈ­¸¦ µ¿½Ã¿¡ ÇÑ´Ù. ±×¸®°í ÂüÁ¶ÇÏ´Â °æ¿ì´Â º¯¼ö¸í ¾Õ¿¡ $¸¦ ºÙ ÀδÙ. À¯ÀÇÇÏ¿©¾ß ÇÒ »ç½ÇÀº C ¼Ð¿¡¼­´Â set ¸í·É¾î¸¦ º¯¼ö¸í ¾Õ¿¡ ºÙ¿©¾ß ÇÑ´Ù´Â °ÍÀÌ´Ù. (¿¹) [YJY:/home/yjy] cat variable # variable ÆÄÀÏÀÇ ³»¿ë Ãâ·Â #! /bin/sh item1 = aaaa item2 = bbbb echo ${item}1 $item2 À§¸¦ ÆÄÀÏ·Î ¸¸µé¾î ¼öÇàÇÏ¸é ¾Æ·¡¿Í °°Àº °á°ú°¡ ³ª¿È aaaa1 bbbb ¹®ÀÚ¿­ÀÌ °ø¹éÀ̳ª Ư¼ö¹®ÀÚ¸¦ Æ÷ÇÔÇÒ °æ¿ì ´Â ' ¿Í '·Î µÑ·¯½Ñ´Ù. (¿¹) set blank='yang jong yoon' º¯¼ö À̸§ µÚ¿¡ ¼ýÀÚ³ª ¹®ÀÚ°¡ ¿À´Â °æ¿ì { ¿Í }·Î µÑ·¯½Ñ´Ù. (¿¹) [YJY:/home/yjy] echo ${sd}123 ¸í·É ¼öÇà°á°ú¸¦ ¹®ÀÚ¿­·Î º¯¼ö¿¡ ±â¾ï½ÃÅ°´Â °ÍÀ» ¸í·É¾î ´ëÄ¡¶ó°í ÇÏ´Â µ¥ ¸Å¿ì À¯¿ëÀÌ ¾²ÀÌ´Â ºÎºÐÀÌ´Ù. ¹æ¹ýÀº back quote(`)·Î ¼öÇàÇÒ ¸í·É¾î¸¦ µÑ·¯½Î¸é µÈ´Ù. (¿¹) [YJY:/home/yjy] set mytty=`tty` [YJY:/home/yjy] echo $mytty /dev/tty05 º»¼¿¿¡¼­ set ¸í·É¾î¸¦ ¾²´Â °æ¿ì°¡ Àִµ¥ ¹æ±Ý ¼³¸íÇÑ ¸í·É¾î ´ëÄ¡¸¦ ÀÌ¿ëÇØ ¸í·É¼öÇà °á°ú¸¦ º¯¼ö $1...$n ¿¡ ÇÒ´çÇϴµ¥ »ç¿ëÇϰųª º»¼ÐÀÇ È¯ °æº¯¼ö¸¦ ¼³Á¤Çϴµ¥ »ç¿ëÇÑ´Ù. (¿¹) $who -r . run-level 2 Aug 21 16:58 2 0 S $set `who -r` $echo $6 16:58 ÀÌ ¿Ü¿¡ export ¸í·ÉÀÌ Àִµ¥ ÀÌ°ÍÀº º¯¼ö¸¦ Àü¿ªº¯¼ö·Î ¼±¾ðÇϴµ¥ ¾² ÀÌ´Â ¸í·É¾îÀÌ´Ù. º»¼ÐÀÇ Á¦¾î¹® if ¹®(Á¶°Ç¹®) If ¹®ÀÇ ÇüÅ´ ´ÙÀ½°ú °°´Ù. {{{{ if Á¶°Ç then ¸í·É¾î fi }}{{ if Á¶°Ç ; then ¸í·É¾î fi }} }} if ¹®Àº C ¾ð¾î¿Í ¸Å¿ì À¯»çÇϵ¥ ´Ü Á¶°Ç¹®¿¡ ÆÄÀÏ¿¡ ´ëÇÑ Á¤º¸¸¦ ¾Ë¾Æ³» ´Â ¹®ÀÚ(aka¶ó°íµµ ÇÔ) ÀÇ »ç¿ëÀÌ °¡´ÉÇÏ´Ù. ´ÙÀ½ [Ç¥6]Àº ´ëÇ¥ÀûÀÎ °Í¸¸À» ³ªÅ¸³½ °ÍÀÌ´Ù. {{{{e }}{{ÆÄÀÏÀÌ ÀÖ´ÂÁö ¿©ºÎ Á¶»ç }}{{r }}{{ÆÄÀÏÀÌ Àбâ Çã°¡°¡ ÀÖ´ÂÁö ¿©ºÎ Á¶»ç }}{{w }}{{ÆÄÀÏ¿¡ ¾²±â Çã°¡ ÀÖ´ÂÁö ¿©ºÎ Á¶»ç }}{{x }}{{ÆÄÀÏ¿¡ ½ÇÇà Çã°¡°¡ ÀÖ´ÂÁö ¿©ºÎ Á¶»ç }}{{z }}{{ÆÄÀÏ ±æÀÌ°¡ 0 ÀÎÁö Á¶»ç }}{{f }}{{ÆÄÀÏÀÌ º¸Åë ÆÄÀÏÀÎÁö Á¶»ç }}{{d }}{{µð·ºÅ丮ÀÎÁö Á¶»ç }} [Ç¥ 6 ] Á¶°Ç ¹®¿¡¼­ÀÇ Ã¼Å©¿É¼Ç }} ¾Æ·¡ÀÇ ÇÁ·Î±×·¥¿¡¼­ string ¸í·ÉÀº ÀÎÀÚ·Î ¹Þ´Â ÆÄÀÏ¿¡¼­ Àμ⠰¡´ÉÇÑ ±Û ÀÚ¸¸ °¡Á®¿À´Â ¸í·ÉÀ̹ǷΠùÁÙÀº µð·ºÅ丮 /vmunix ¿¡¼­ À¯´Ð½º ¹®ÀÚ¿­ ÀÌ Æ÷ÇÔµÈ ¶óÀÎ(À¯´Ð½º ¹öÀü ¹®ÀÚ¿­)À» /tmp/motd ¿¡ º¹»çÇÏ´Â ³»¿ëÀÌ´Ù. µÑ° ÁÙÀº head ¸í·É¾î°¡ ÀÎÀÚ·Î ¹Þ´Â ÆÄÀÏÀÇ Ã¹ ¶óÀκÎÅÍ ¿øÇÏ´Â ¶óÀÎÀ» °¡Á®¿À´Â ¸í·ÉÀ¸·Î °á±¹ /etc/motd ÆÄÀÏ¿¡¼­ À¯´Ð½º ¹öÀü ¹®ÀÚ¿­À» /tmp/th ÆÄÀÏ·Î º¹»çÇÏ´Â ³»¿ëÀÌ´Ù. ±×¸®°í if ¹®Àº /tmp/th ÆÄÀÏÀÇ ³»¿ëÀÌ ¾²¿©Á³´ÂÁö¸¦ °Ë»çÇÏ¿© ³»¿ëÀÌ ÀÖÀ¸¸é ±× ³»¿ë¿¡ /etc/motd ÆÄÀÏ ³»¿ëÀ» Ãß°¡ÇÏ°í ¾øÀ¸¸é /etc/motd ÆÄÀÏÀÇ 2¶óÀκÎÅÍ ³¡±îÁö¸¦ Ãß°¡ÇÏ´Â ³»¿ëÀÌ ´Ù. ±×¸®°í ³ª¼­ ÆÄÀÏ À̸§À» º¯°æÇÑ´Ù. (¿¹) string /vmunix | grep UNIX > /tmp/motd head -1 /etc/motd | grep UNIX > /tmp/th if [ -z /tmp/th ] then cat /etc/motd >> /tmp/motd else tail +2 /etc/motd >> /tmp/motd fi mv /tmp/motd /etc/motd ¶ÇÇÑ Á¤¼ö ºñ±³¸¦ ÇÏ°íÀÚ ÇÏ´Â °æ¿ì´Â ´ÙÀ½ ¿¬»êÀÚ¸¦ »ç¿ëÇÑ´Ù. {{{{-eq }}{{equal }}{{-gt }}{{greater }}{{-lt }}{{little }}{{-ne }}{{not equal }}{{-ge }}{{great or equal }}{{-le }}{{little or equal }}[ Ç¥ 7 ] Á¤¼öºñ±³ ¿¬»êÀÚ }} ´ÙÀ½ ÇÁ·Î±×·¥Àº lpsched ÇÁ·Î¼¼½ºÀÇ ID ¸¦ ±¸ÇØ Á¾·á½ÃÅ°´Â ÀÏÀ» ÇÏ´Â °Í À¸·Î ù ÁÙÀº ps¿Í grep ¸í·É¾î¸¦ ÀÌ¿ëÇØ lpsched ÇÁ·Î¼¼½ºÀÇ »óŶóÀÎÀ» ã¾Æ sed ¸í·ÉÀ¸·Î ¶óÀΠóÀ½¿¡ ³ª¿À´Â ºóÄ­À̳ª µµÆ®·Î ½ÃÀÛÇÏ´Â ¹®ÀÚ¸¦ À» ¸ðµÎ ¾ø¾Ö°í PID ¸¸À» º¯¼ö pid ¿¡ ÇÒ´çÇÑ´Ù. ±×¸®°í ÇÒ´çµÈ °ªÀÌ ÀÖ´Â °æ¿ì Á¾·á½ÃŲ´Ù. Âü°í·Î grep ¿¡¼­ÀÇ lpsched$´Â ÆÄÀÏ¿¡¼­ lpsched·Î ³¡³ª ´Â ¶óÀθ¸À» ÃëÇÑ´Ù´Â ÀǹÌÀÌ´Ù. (¿¹) pid=`/bin/ps -e | grep 'lpsched$' | sed -e 's/^ *//' -e 's/ .*//'` if [ "${pid}" != "" ] then /bin/kill ${pid} fi ´ÙÀ½ ÇÁ·Î±×·¥Àº /etc/rc0.d µð·ºÅ丮 À¯¹«¸¦ È®ÀÎ ÇÑ ÈÄ ±× ¾ÈÀÇ ½ºÅ©¸³ Æ® ÆÄÀÏÀ» ¼öÇàÇÏ´Â ÀÏÀ» ÇÏ´Â °ÍÀ¸·Î À¯´Ð½ºÀÇ Startup ½ºÅ©¸³Æ® ³»¿¡ ÀÚ ÁÖ »ç¿ëµÇ´Â ÇüÅÂÀÌ´Ù. (¿¹) if [ -d /etc/rc0.d ] # /etc/rc0.d µð·ºÅ丮°¡ ÀÖÀ¸¸é then µð·ºÅ丮 ¾ÈÀÇ ÆÄÀϵéÀ» ¼öÇà fi ´ÙÀ½ ÇÁ·Î±×·¥µµ ºñ½ÁÇÑ ³»¿ëÀε¥ ¿©±â¼­ ¾²ÀÎ -a ´Â and ¸¦ ÀǹÌÇÑ´Ù. ÀÌ¿Í À¯»çÇÑ ¿¬»êÀڷδ -o °¡ Àִµ¥ or À» ÀǹÌÇÑ´Ù. (¿¹) if ["${BOOT}" = "yes" -a -d /etc/rc0.d ] then /etc/rc0.d ¾ÈÀÇ ÆÄÀϵéÀ» ¼öÇà fi While , until ¸í·É¾î {{{{ while Á¶°Ç do ¸í·É¾î done }}{{ until Á¶°Ç do ¸í·É¾î done }} }} ´ÙÀ½ ÇÁ·Î±×·¥Àº ù ¹ø°, µÎ ¹ø° ÀÎÀÚ¸¦ ¹Þ¾Æ ó¸®ÇÑ ÈÄ ÀÌ µÎ ÀÎÀÚ¸¦ ÀÎÀÚ ¸®½ºÆ®¿¡¼­ »èÁ¦ÇÏ´Â ÀÏÀ» ÇÑ´Ù. ¿©±â¼­ À¯½ÉÈ÷ º¸¾Æ¾ßÇÒ °ÍÀÌ shift ¸í·É¾îÀε¥ ÀÎÀÚ¸®½ºÆ®¸¦ Çϳª¾¿ À̵¿½ÃŲ´Ù. Áï À§ÀÇ ÇÁ·Î±×·¥ÀÌ ¼öÇàµÇ¸é ¼¼ ¹ø° ÀÎÀÚ°¡ ù ¹ø° ÀÎÀÚ·Î µÇ´Â ½ÄÀÌ´Ù. (¿¹) while ["$1" -a "$2" ] do $1 °ú $2 ¿¡ ´ëÇÑ Ã³¸® shift; shift done Âü°í·Î ½ºÅ©¸³Æ®°¡ ¸í·É¾î ¶óÀο¡¼­ ÀÎÀÚ¸¦ ¹Þ´Â °æ¿ìÀÇ º¯¼ö »ç¿ëÀº ´ÙÀ½°ú °°´Ù. (¿¹) {{{{$#argv }}{{ÀÎÀÚ °³¼ö }}{{$argv ($argv[*], $*) }}{{ÀÎÀÚ ¸®½ºÆ® Àüü }}{{$argv[n] }}{{n ¹ø° ÀÎÀÚ }}{{$1...$9 }}{{$argv[1]...$argv[9] °ú µ¿ÀÏ }}{{$0 }}{{¸í·É¾îÀÇ À̸§($argv[0]Àº ¾ÈµÊ) }}[ Ç¥ 8 ] ¸í·É¾î ¶óÀο¡¼­ ÀÎÀÚÀ̿뺯¼ö }} Case ¸í·É¾î(´ÙÁß¼±Åù®) <Çü½Ä> {{{{ case º¯¼ö in ÆÐÅÏ1) ¸í·É¾î ;; ÆÐÅÏ2) ¸í·É¾î ;; ... ÆÐÅÏN) ¸í·É¾î ;; *) ¸í·É¾î ;; esac }} }} ´ÙÀ½ ÇÁ·Î±×·¥Àº ÆÄÀÏ ½Ã½ºÅÛÀ» üũ(fsckÀÌ¿ë)Çؼ­ ±× °á°ú°ª($?)¿¡ µû¶ó ÇൿÀ» ´Ù¸£°Ô ÃëÇÏ´Â ÀÏÀ» ÇÑ´Ù. (¿¹) etc/fsck -p > /dev/console case $? in 0) date > /dev/console ;; 1) exit 1 ;; 4) /etc/reboot -n ;; *) echo "Unknown error in reboot: > /dev/console exit 1 ;; esac for ¸í·É¾î <Çü½Ä> {{{{ for º¯¼ö [in ¸®½ºÆ®] do ¸í·É¾î done }} }} ´ÙÀ½ ÇÁ·Î±×·¥Àº Àӽà µð·ºÅ丮µé(/tmp, /usr/tmp, /chem/tmp) ¾ÈÀÇ ³»¿ë À» ¸ðµÎ Áö¿ì´Â ÀÏÀ» ÇÑ´Ù. º¯¼ö d¿¡ °¢ µð·ºÅ丮 À̸§ÀÌ ¼ø¼­´ë·Î µé¾î°¡ ¼­ find ¸í·ÉÀ¸·Î tmp µð·ºÅ丮¸¦ ã¾Æ »èÁ¦ÇÑ´Ù. (¿¹) for d in /tmp /usr/tmp /chem/tmp ; do find $d -name tmp -type d -exec rmdir {} \; done ¹®¹ýÀû Ư¡ º»¼ÐÀº C¼Ð¿¡ ºñÇØ ¹®¹ýÀû À¶Å뼺À» Á¦°øÇÏ´Â °ÍÀ¸·Î µû¿ÈÇ¥(') °¡ ¿©·¯ ¶óÀο¡ À¯È¿Çϴٴ Ư¡ÀÌ ÀÖ´Ù. ´ÙÀ½ ÇÁ·Î±×·¥Àº awk¸¦ ÀÌ¿ëÇØ /etc/passwd ÆÄÀÏ¿¡¼­ UID,GID °¡ 0ÀÎ ¶óÀÎÀ» ã¾Æ root¸¦ Á¦¿ÜÇÑ ÇØ´ç »ç¿ëÀÚ ¸íÀ» Ãâ·ÂÇÑ´Ù. (¿¹) echo "*** Non-root UID=0 or GID=0 accounts : " grep ':00*:' /etc/passwd | \ awk -F: 'BEGIN {n=0} $1 != "root" {print $0; n=1} END {if (n==0) print "None found.")' ÀԷ¹ޱâ : read ¸í·É¾î read ¸í·É¾î´Â Ç¥ÁØÀԷ¿¡¼­ ÇÑ ¶óÀÎÀ» ÀÐ¾î ´ÙÀ½ º¯¼ö¿¡ ÇÒ´çÇÑ´Ù. ´ÙÀ½ ÇÁ·Î±×·¥Àº x, y, z º¯¼ö¿¡ ÇÑ ¶óÀÎÀÇ ÀÔ·ÂÀ» °¢°¢ ¹Þ´Â °ÍÀ¸·Î µÑ° ÁÙÀÇ > ÇÁ·ÒÇÁÆ®´Â º»¼ÐÀÇ Æ¯Â¡Áß Çϳª·Î¼­ ¸í·É¾î ¶óÀÎÀÌ °è¼ÓµÊÀ» ÀÇ¹Ì ÇÑ´Ù. ÀÌ ±âÈ£´Â ȯ°æº¯¼ö PS2¿¡ ÁöÁ¤µÈ´Ù. (¿¹) [YJY:/home/yjy] cat file.dat | while read x y z > do echo $x $y $z ; done a b c d e f ... C ¼ÐÀÇ °æ¿ì´Â gets ¸í·É¾î¸¦ ÀÌ¿ëÇÑ´Ù. expr ¸í·É¾î : ¼ö½ÄÀ» Æò°¡ÇÑ´Ù. (¿¹) [YJY:/home/yjy] cat count_to_5 #! /bin/sh i=1 while [ $i -le 5 ] ; do echo $i i = `expr $i+1` # i ¿¡ 1 À» ´õÇÔ done $count_to_5 1 2 3 4 5 À§¿Í °°Àº ÇÁ·Î±×·¥À» C¼Ð¿¡¼­ ¸¸µé·Á¸é @¿¬»êÀÚ¸¦ ÀÌ¿ëÇÏ¿©¾ß ÇÑ´Ù. ÇÔ¼ö(Function) <Çü½Ä> {{{{ fname() { ¸í·É¾î } }} }} º»¼Ð¿¡¼­´Â ÇÔ¼ö¸¦ Á¤ÀÇ »ç¿ëÇÒ ¼ö Àִµ¥ ÀÌ ÇÔ¼ö¸¦ ÀÌ¿ëÇϸé C¼Ð¿¡¼­ Áö¿øÇÏ´Â ¿¤¸®¾î½º¸¦ º»¼Ð¿¡¼­µµ ¸¸µé¾î »ç¿ëÇÒ ¼ö ÀÖ´Ù. (¿¹) sserv() { # sserv : ¼­¹ö¸¦ ±¸µ¿½ÃÅ°´Â ÇÔ¼ö # args : $1 - µ¥¸ó Æнº¸í ; $2="" startscr¸¦ ÀÌ¿ëÇ϶ó´Â ÀÇ¹Ì if [ $# = 0 ] ; then echo "sserv : server name required." ; return 1 fi [ ! -x $1 ] ; then return 1 ; fi if [ -n "$2" ] ; then startsrc -s `basename $1` else $1 fi } sserv /etc/syslogd $USE_SRC (¿¹) dir() { ls -al | more ; } {{{{buildrel rarrow " " }} }} C ¼Ð¿¡¼­ÀÇ alias dir 'ls -al|more' ¿Í µ¿ÀÏ ÁÖÀÇÇÒ Á¡Àº ¼±¾ð½Ã '{' ¿Í ¸í·É¾î¸®½ºÆ® »çÀÌ´Â °ø¹éÀÌ µé¾î°¡¾ß ÇÑ´Ù´Â °ÍÀÌ´Ù. C ¼Ð (C Shell) C ¼ÐÀÇ º¯¼ö º¯¼ö¿¡ ¹®ÀÚ¿­À̳ª ¹®ÀÚ ¸®½ºÆ® ÇÒ ´ç½Ã set ¸í·É¾î¸¦ »ç¿ëÇÑ´Ù. (¿¹) set sd=/usr/src/systemV ÇÒ´çµÈ º¯¼öÀÇ »ç¿ëÀº º»¼Ð°ú ¸¶Âù°¡Áö·Î º¯¼ö ¾Õ¿¡ $¸¦ »ç¿ëÇÑ´Ù. (¿¹) % ls -l $sd -> /usr/src/systemV µð·ºÅ丮 ³»¿ëÀ» º¸¿©ÁÜ ÀÌ¹Ì ÁöÁ¤µÈ º¯¼öÀÇ Á¦°Å´Â unset ¸í·É¾î¸¦ ÀÌ¿ëÇÑ´Ù. (¿¹) %unset mlist ¹®ÀÚ¿­ ¸®½ºÆ®¸¦ ÀúÀåÇÒ °æ¿ì `(` ¿Í `)` ·Î µÑ·¯½Ñ´Ù. (¿¹) % set mlist = (mary ann sara) {{{{¹®ÀÚ¿­ Àüü ÁöÁ¤½Ã }}{{$mlist }}{{¹®ÀÚ¿­ ³»ÀÇ °¢ ¹®ÀÚ ÁöÁ¤ }}{{$mlist[1], $mlist[2], $mlist[3] }}{{ºÎºÐ ¹®ÀÚ¿­ ÁöÁ¤ }}{{$mlist[1-2] }}{{¹®ÀÚ¿­ÀÇ ¿ø¼Ò °³¼ö }}{{$#mlist }} }} C ¼ÐÀÇ Á¦¾î¹® if ¹® (Á¶°Ç¹®) <Çü½Ä> {{{{ if (Á¶°Ç) ¸í·É¹® endif }} }} ´ÙÀ½ ÇÁ·Î±×·¥Àº µð·ºÅ丮³»ÀÇ ÆÄÀÏ ¼ö¸¦ ¼¼´Â ÇÁ·Î±×·¥ÀÌ´Ù. (¿¹) #count number of files in directory #usage : %nfile name if (! -e $argv[1]) echo "$0 : no file $argc[1]" exit 1 else if (! -d $argv[1]) echo "$0 : $argv[1] is not a directory" exit 1 else echo -n "The number of files in $argv[1] : " ls $argv[1] | wc -w endif foreach ¹®°ú while ¹® <Çü½Ä> {{{{ foreach ¸í·É¹® end }}{{ while ¸í·É¹® end }} }} (¿¹) #print args foreach a ($argv[*]) -> a ¿¡ ÀÎÀÚ ¸®½ºÆ® ¹®ÀÚ¸¦ ´ëÀÔÇØ ¹Ýº¹ echo $a end switch¹®(´ÙÁß¼±Åù®) ´ÙÀ½ ¿¹Á¦´Â »ç¿ëÀڷκÎÅÍ ÀÔ·ÂÀ» ¹Þ¾Æ ÇØ´ç ÀÛ¾÷À» ¼öÇàÇϵµ·Ï ÇÏ´Â ÇÁ ·Î±×·¥ÀÌ´Ù. getsÀÇ »ç¿ëÀ» ´«¿©°Üº¸±â ¹Ù¶õ´Ù. (¿¹) #menu program while(1) echo "I)nsert D)elete L)ist E)xit" echo -n "Enter your choice ==> " set ch = `gets` switch($ch) case [iI] : # Á¤±Ô½Ä Ç¥Çö °¡´É ... breaksw case [dD] : ... case [eE] : exit 0 default : echo "Invalid choice" breaksw endsw end À§¿¡¼­ case ´ÙÀ½¿¡ ³ª¿À´Â [dD] Ç¥½Ã´Â º¯¼ö°¡ d, D ÀÎ °æ¿ì¸¦ ³ªÅ¸³½ ´Ù. º°µµ·Î ¸¶·ÃÇÑ [Ç¥9], [Ç¥10]Àº °¢ ¼¿ÀÇ ³»Àå ¸í·É¾î¸¦ ±¸ºÐÇÏ¿© Á¤¸®ÇÑ °Í ÀÌ´Ù. ÂüÁ¶Çϱ⠹ٶõ´Ù. {{{{ ------------------------------------------------------------ -------------------- Bourne/Korn Shell C shell ¿ëµµ ------------------------------------------------------------ --------------------- : : ³Î ¸í·É¾î alias ¸í·É¾î ¿¤¸®¾î½º ¸¦ »ý¼ºÇÑ´Ù. bg ÇÁ·Î¼¼½º¸¦ ÈÄÀ§·Î ¼öÇàÇÑ´Ù. break break for ³ª while ¹®À» ºüÁ®³ª¿Â´Ù. breaksw switch¹®À» ºüÁ®³ª¿Â´Ù. cd µð·ºÅ丮¸¦ º¯°æÇÑ´Ù. continue for ³ª while ¹®¿¡¼­ ´ÙÀ½ ¹Ýº¹À» ¼öÇà default switch¿¡¼­ÀÇ default case. dirs µð·ºÅ丮 ½ºÅÃÀ» ÀμâÇÑ´Ù. echo echo ÀÎÀÚ¸¦ Ç¥ÁØÃâ·ÂÀ¸·Î ³ªÅ¸³½´Ù. eval ÀÎÀÚ¸¦ Æò°¡ÇÏ°í ¼öÇàÇÑ´Ù. exec ÀÎÀÚ¸¦ ¼öÇàÇÑ´Ù. exit exit ¼Ð ÇÁ·Î±×·¥À» ºüÁ®³ª¿Â´Ù. export Àü¿ªº¯¼ö¸¦ »ý¼ºÇÑ´Ù. fg ÇÁ·Î¼¼½º¸¦ ÀüÀ§·Î Àüȯ½ÃŲ´Ù. for foreach for ¹Ýº¹¹®À» ¼öÇàÇÑ´Ù. glob ÆÄÀÏÀ̸§ expansionÀ» ¼öÇàÇÑ´Ù. goto ¼ÐÇÁ·Î±×·¥³»ÀÇ ¶óº§·Î Á¦¾î º¯È¯ÇÑ´Ù. history È÷½ºÅ丮 ¸®½ºÆ®¸¦ º¸¿©ÁØ´Ù. if if Á¶°Ç¹®À» ¼öÇàÇÑ´Ù. }}[ Ç¥ 9 ] ¼ÐÀÇ ³»Àå ¸í·É¾î }}{{{{ ------------------------------------------------------------ -------------------- Bourne/Korn Shell C shell ¿ëµµ ------------------------------------------------------------ --------------------- jobs ÇöÀç ½ÇÇàÁßÀÎ ÇÁ·Î¼¼½º¸¦ º¸¿©ÁØ´Ù. kill ÇÁ·Î¼¼½º¸¦ Á×ÀδÙ. limit ÇÁ·Î¼¼½ºÀÇ ÀÚ¿øÀ» Á¦ÇÑÇÑ´Ù. login ·Î±×ÀÎ logout ·Î±×¾Æ¿ô newgrp »õ »ç¿ëÀÚ±×·ìÀ¸·Î º¯°æÇÑ´Ù. nice ¸í·ÉÀÇ ¿ì¼± ¼øÀ§¸¦ º¯°æÇÑ´Ù. nohup hangupÀ» ¹«½ÃÇÑ´Ù. notify ÇÁ·Î¼¼½º »óÅ°¡ º¯ÇÏ¸é ¾Ë·ÁÁØ´Ù. onintr ÀÎÅÍ·´Æ®½ÃÀÇ Á¦¾î popd µð·ºÅ丮 ½ºÅÃÀ» ²¨³½´Ù. pushd µð·ºÅ丮¸¦ ½ºÅÿ¡ ³Ö´Â´Ù. read Ç¥ÁØÀÔ·ÂÀ¸·ÎºÎÅÍ ÇÑ ¶óÀÎÀ» ÀԷ¹ÞÀ½ readonly º¯¼ö¸¦ Àбâ Àü¿ë ¼Ó¼ºÀ¸·Î º¯°æÇÑ´Ù. repeat ¸í·ÉÀ» n ¹ø ¼öÇàÇÑ´Ù. set ¼ÐÀÇ È¯°æº¯¼ö¸¦ ¼³Á¤ÇÑ´Ù. set Áö¿ª C ¼Ðº¯¼ö¸¦ ¼³Á¤ÇÑ´Ù. setenv Àü¿ª C ¼Ðº¯¼ö¸¦ ¼³Á¤ÇÑ´Ù. shift shift ¼Ð ÀÎÀÚ¸®½ºÆ®¸¦ À̵¿ÇÑ´Ù. source ÆÄÀÏÀ» ÀÐ¾î ¼öÇàÇÑ´Ù. stop ÈÄÀ§ ÇÁ·Î¼¼½º¸¦ ÁßÁö½ÃŲ´Ù. suspend ¼ÐÀ» Á¤Áö½ÃŲ´Ù. switch switch¹® test Á¶°Ç¹®À» Æò°¡ÇÑ´Ù. times time ¼öÇà½Ã°£À» ³ªÅ¸³½´Ù. trap ¼öÇà ½Ã±×³ÎÀ» ´Ù·é´Ù. ulimit ÀÚ½ÄÇÁ·Î¼¼½º¿¡ ÀÇÇØ »ç¿ëµÉ ¼ö ÀÖ´Â ÆÄÀÏÅ©±â¸¦ Á¦ÇÑÇÑ´Ù. umask umask ÆÄÀÏ, µð·ºÅ丮ÀÇ ±âº» ¼Ó¼º ÁöÁ¤ÇÑ´Ù. unalias ¿¤¸®¾î½º ÇØÁ¦ unlimit limit ÇØÁ¦ unset set ÇØÁ¦ unsetenv setenv ÇØÁ¦ until until ·çÇÁ wait ÈÄÀ§ ÇÁ·Î¼¼½º°¡ ³¡³ª±æ ±â´Ù¸°´Ù. while while while ¹® % job ÇÁ·Î¼¼½º¸¦ ÈÄÀ§¿¡¼­ ÀüÀ§·Î º¯°æÇÔ. expr @ ¼Ðº¯¼ö¸¦ ¼³Á¤, ȤÀº ³ªÅ¸³½´Ù. }}[ Ç¥10] ¼ÐÀÇ ³»Àå¸í·É¾î (°è¼Ó) }} ¸¶Ä¡¸ç À̹øÈ£¿¡¼­´Â ¼Ð¿¡¼­ ÇÁ·Î±×·¡¹ÖÇÒ ¼ö ÀÖ´Â ¹æ¹ý¿¡ ´ëÇؼ­ ¾Ë¾Æº¸¾Ò´Ù. ´Ù ¼Ò Áö·çÇÏ°í Àç¹Ì¾ø´Â °¨µµ ÀÖÁö¸¸, ´ÙÀ½ ´Ü°è¸¦ À§Çؼ­ ¹Ýµå½Ã ÇÊ¿äÇÑ ´Ü °è¶ó°í »ý°¢ÇÏ°í ÃæºÐÈ÷ ¼÷ÁöÇϱ⠹ٶõ´Ù. ´ÙÀ½´Þ¿¡´Â À̹øÈ£¿¡¼­ ¼³¸íµÈ ³»¿ëµéÀÌ ±â¹ÝÀÌ µÇ´Â startup ½ºÅ©¸³Æ®ÀÇ ³»¿ëÀ» ´Ù·ç°Ô µÈ´Ù. ´ÙÀ½´Þ¿¡ ¼³¸íµÇ¾îÁö´Â ºÎºÐµµ ´ë´ÜÈ÷ µûºÐÇÏ°ÚÁö¸¸ Âü°í °ßµð½Ã±â¸¦....  ..........