À̹øÀå¿¡¼´Â ½©½ºÅ©¸³Æ®¸¦ ´Ù·ç´Âµ¥ ÇÊ¿äÇÑ 3°¡Áö ºÎ¼öÀûÀÎ ÁÖÁ¦¸¦
¼³¸íÇÏ°Ô µÉ°ÍÀÌ´Ù.
½©½ºÅ©¸³Æ®´Â À¯´Ð½º ¸í·É¾îµéÀÇ ÁýÇÕÀ̹ǷÎ, À¯´Ð½º ¸í·É¾î¿¡ ´ëÇØ¼
¾î´ÀÁ¤µµÀÇ ¼÷Áö°¡ ÇÊ¿äÇÏ´Ù. ÀÌ·¯ÇÑ ¸í·É¾îµéÀº ÁÖ·Î ÆÄÀϰú ¹®ÀÚ¿À»
ÆíÁýÇϱâ À§Çؼ ¾²¿©Áø´Ù.
ÀÌ·¯ÇÑ ¸í·É¾îµéÁß ÀÚÁÖ ¾²ÀÌ´Â ¸í·É¾îµéÀ» Á¤¸®Çß´Ù.
Ç¥ 1. ÀÚÁÖ »ç¿ëµÇ´Â À¯´Ð½º ¸í·É¾îµé
echo "some text" | some text ¸¦ ȸ鿡 Ãâ·ÂÇÑ´Ù |
wc -l file | ÆÄÀÏÀÇ ¶óÀμö |
cp sourcefile destfile | sourcefile À» destfile ·Î º¹»ç |
mv oldname newname | ÆÄÀÏÀ̸§À» ¹Ù²Ù°Å³ª ÆÄÀÏÀÇ À̵¿ |
rm file | ÆÄÀÏ Áö¿ì±â |
grep 'pattern' file | ÆÄÀÏ¿¡¼ patternÀÇ ¹®ÀÚ¿À» ã±â |
cub -b colnum file | ÆÄÀÏ¿¡¼ ¹®ÀÚ¿À» Ä÷³´ÜÀ§·Î Àß¶ó¼ º¸¿©ÁÜ |
cat file.txt | file.txt ¸¦ Ç¥ÁØÃâ·Â(stdout) ½ÃÅ´ |
file somefile | somefile ÀÇ ÆÄÀÏŸÀÔ ¾Ë¾Æ³»±â |
read var | ÀԷ°ªÀ» º¯¼ö¸ívar ¿¡ ´ëÀÔ |
sort file.txt | file.txt ¸¦ ¶óÀδÜÀ§·Î Á¤·Ä |
uniq | ÆÄÀÏ¿¡¼ Áߺ¹µÇ´Â ¹®ÀÚ¿À» Á¦°Å |
tee | Ç¥ÁØÃâ·ÂµÇ´Â Á¤º¸¸¦ ÆÄÀÏ·Î ¾²±â |
basename file | µð·ºÅ丮¸íÀ» Á¦¿ÜÇÑ ÆÄÀÏÀÇ ½ÇÁ¦À̸§À» µ¹·ÁÁÜ |
dirname file | ÆÄÀÏÀ̸§À» Á¦¿ÜÇÑ µð·ºÅ丮ÀÇ À̸§À» µ¹·ÁÁÜ |
head file | ÆÄÀÏÀÇ Ã³À½ ¸î¶óÀÎÀ» Ãâ·ÂÇÔ |
tail file | ÆÄÀÏÀÇ ¸¶Áö¸· ¸î¶óÀÎÀ» Ãâ·ÂÇÔ |
sed | Á¤±ÔÇ¥Çö¿¡ ÀÇÇÑ ¹®ÀÚ¿ÀÇ °Ë»ö¹× ġȯ¿¡ »ç¿ëµÊ |
Pipes(|) ´Â ÇϳªÀÇ ÇÁ·Î±×·¥À» ½ÇÇà½ÃÄѼ ¹ß»ýµÈ Ç¥ÁØÃâ·Â µ¥ÀÌŸ¸¦
´Ù¸¥ ÇÁ·Î±×·¥¿¡ Ç¥ÁØÀÔ·Â ½Ã۰íÀÚ ÇÒ¶§ »ç¿ëµÈ´Ù.
Áï ÇÁ·Î¼¼½º°£ µ¥ÀÌŸ Åë½ÅÀ» À§ÇÑ ÇϳªÀÇ ¹æ¹ýÀ¸·Î »ç¿ëµÈ´Ù.
grep "hello" file.txt | wc -l
|
À§ÀÇ ½ºÅ©¸³Æ®´Â file.txt ¿¡¼ hello¹®ÀÚ¿À» Æ÷ÇÔÇÑ ¶óÀÎÀ»
ã¾Æ¼(grep), ¸î°³ÀÇ ¶óÀÎÀÌ hello ¸¦ Æ÷ÇÔÇϰí ÀÖ´ÂÁöÀÇ ¶óÀμö¸¦
µ¹·ÁÁØ´Ù.
redirection Àº "ÀçÁöÇâ" À̶ó°í ºÒ¸®¿öÁø´Ù. ¿ì¸®³ª¶ó ¸»·Î Ç¥ÇöÇÏÀÚ¸é
"´Ù½Ã ÇâÇÏ°Ô ÇÏ´Ù" À̸ç, ¾î¶² ÇÁ·Î±×·¥ÀÇ Ãâ·Â Á¤º¸¸¦
´Ù¸¥°÷À¸·Î ´Ù½Ã ÇâÇϰÔ
ÇÒ¶§ ¾²ÀδÙ. ¿©±â¿¡¼ ´Ù¸¥°÷À̶õ ÁÖ·Î ÆÄÀÏÀ» ¶æÇÑ´Ù.
ÀçÁöÇâÀ» À§Çؼ´Â ">" °ú ">>" À» ¾´´Ù. ">"À» »ç¿ëÇÏ°Ô µÇ¸é
»õ·Î¿î ÆÄÀÏÀ» ¸¸µé°Ô µÈ´Ù. ±âÁ¸¿¡ °°Àº À̸§ÀÇ ÆÄÀÏÀÌ ÀÖ¾ú´Ù¸é,
±× ÆÄÀÏÀº Áö¿öÁö°Ô µÈ´Ù. ">>" À» ¾²°Ô µÇ¸é ±âÁ¸¿¡ °°Àº À̸§ÀÇ
ÆÄÀÏÀÌ ÀÖ´Ù¸é ±× ÆÄÀÏÀÇ ¸¶Áö¸·ºÎºÐ¿¡ µ¡ ºÙ¿©Áö°Ô µÈ´Ù.
°°Àº À̸§ÀÇ ÆÄÀÏÀÌ ¾ø´Ù¸é ¹°·Ð »õ·Î¿î ÆÄÀÏÀ» ¸¸µé°Ô µÈ´Ù.
[root@localhost /root]# cat address.txt | grep "seoul" > seoul_add.txt
|
address.txt ¿¡´Â ÁÖ¼ÒÁ¤º¸°¡ ´ã°Ü ÀÖ´Ù. À§ÀÇ ½ºÅ©¸³Æ®´Â ÀÌÁß
ÁÖ¼ÒÁö°¡ "seoul" ÀÎ Á¤º¸¸¸À» µû·Î »Ì¾Æ¼
seoul_add.txt ¿¡ ÀúÀåÇÏ´Â ÀÏÀ» ¼öÇàÇÑ´Ù.
"if"´Â ÂüÀÎÁö °ÅÁþÀÎÁö ÆÇ´ÜÇÒ¶§ »ç¿ëÇÑ´Ù. ÂüÀ̶ó¸é then ºÎºÐÀ» ½ÇÇàÇϰí
±×·¸Áö ¾Ê´Ù¸é else ºÎºÐÀ» ½ÇÇàÇÑ´Ù.
if .....
then
....
else
....
fi
|
if ÀÇ °¡Àå À¯¿ëÇÑ »ç¿ëó´Â "»óÅÂ" ¸¦ Å×½ºÆ®(test) Çϴµ¥ ÀÖ´Ù.
Áï ¹®ÀÚºñ±³,
ÆÄÀÏÀÌ Á¸ÀçÇÏ´ÂÁö, ÆÄÀÏÀÌ ½ÇÇàÆÄÀÏÀÎÁö, µð·ºÅ丮ÀÎÁö, ÀÐÀ»¼ö ÀÖ´ÂÁö ...
µî¿¡ À¯¿ëÇÏ°Ô »ç¿ëÇÒ¼ö ÀÖÀ¸¸ç, ÀÌ·¯ÇÑ ÀÛ¾÷ÀÇ Á¦¾î¸¦ À§ÇÑ Æ¯¼öÇÑ ¸í·É¾î
µéÀ» Á¦°øÇÑ´Ù.
ÀÌ·¯ÇÑ "test" Á¶°ÇµéÀº "[ ]" »çÀÌ¿¡ ¾²¸éµÈ´Ù.
"[" °ú "]" »çÀÌ¿¡´Â ¹Ýµå½Ã °ø¹é¹®ÀÚ°¡ µé¾î°¡¾ß µÈ´Ù´Â °ÍÀ» ÁÖÀÇÇÏÀÚ.
[ -f "somefile" ] : somefile ÀÌ ÆÄÀÏÀÎÁö¸¦ Å×½ºÆ® ÇÑ´Ù.
[ -x "/bin/ls" ] : /bin/ls °¡ ½ÇÇàÆÄÀÏÀÎÁö¸¦ °Ë»çÇÑ´Ù.
[ -n "$var" ] : $var º¯¼ö¿¡ ¾î¶² °ªÀÌ ´ëÀԵǾî ÀÖ´ÂÁö¸¦ °Ë»çÇÑ´Ù.
[ "$a" = "$b" ] : $a ¿Í $b °¡ °°ÀºÁö °Ë»çÇÑ´Ù.
["$a" = "$b"] : "[" °ú "]" »çÀÌ¿¡ °ø¹éÀÌ ¿ÀÁö ¾Ê¾ÒÀ½À¸·Î À߸øµÈ ¹®ÀåÀÌ´Ù.
|
"man test" ¸¦ ÀÌ¿ëÇØ¼ ¾î¶°ÇÑ test operator ÀÌ ÀÖ´ÂÁö È®ÀÎ ÇÒ¼ö ÀÖ´Ù.
#!/bin/sh
if [ "$SHELL" = "/bin/bash" ]
then
echo "your login shell is the bash (bourne again shell)"
else
echo "your login shell is not bash but $SHELL"
fi
|
$SHELL Àº ȯ°æº¯¼ö·Î½á »ç¿ëÀÚÀÇ ·Î±×ÀÎ ½©ÀÇ À̸§À» °¡Áö°í ÀÖ´Ù.
À§ÀÇ ½ºÅ©¸³Æ®´Â $SHELL ÀÇ °ªÀ» Å×½ºÆ® ÇÔÀ¸·Î½á »ç¿ëÀÚ°¡ ¾î¶² ½©À»
»ç¿ëÇÏ´ÂÁö ¾Ë¾Æ³»´Â ÀÏÀ» ÇÑ´Ù.
C ¾ð¾î¸¦ ÀÚÁÖ »ç¿ëÇØ º»»ç¶÷Àº ¾Æ·¡¿Í °°Àº ¹®Àå¿¡ Àͼ÷ÇÒ °ÍÀÌ´Ù.
[ -f "/etc/shadow" ] && echo "This computer uses shadow passwords"
|
À§ÀÇ ¹®Àå¿¡¼´Â && À» »ç¿ëÇØ¼ if ¹®À» °£´ÜÇÏ°Ô Ç¥ÇöÇϰí ÀÖ´Ù.
¿ÞÂÊ ¹®ÀåÀÌ ÂüÀÌ¸é ¿À¸¥ÂÊÀ» ½ÇÇàÇ϶ó´Â °ÍÀ¸·Î, /etc/shadow ¶ó´Â
ÆÄÀÏÀÌ Á¸ÀçÇÑ´Ù¸é ½¦µµ¿ì ÆÐ½º¿öµå¸¦ »ç¿ëÇÑ´Ù°í À¯Àú¿¡°Ô ¾Ë·ÁÁÖ´Â
ÀÏÀ»ÇÑ´Ù. || ¸¦ »ç¿ëÇÏ¸é ±×¹Ý´ëÀÇ °æ¿ìÀÌ´Ù. °£´ÜÇÑ »ç¿ë¿¹¸¦ µé¾î
º¸°Ú´Ù.
#!/bin/sh
mailfolder=/var/spool/mail/james
[ -r "$mailfolder" ] || { echo "Can not read $mailfolder; exit 1;}
echo "$mailfolder has mail from : "
grep "^From " $mailfolder
|
À§ÀÇ ÇÁ·Î±×·¥Àº james °èÁ¤»ç¿ëÀÚÀÇ ¸ÞÀÏÆÄÀÏÀ» °Ë»çÇØ¼ ¸ÞÀÏ ÆÄÀÏÀ» ÀÐÀ»¼ö
¾øÀ¸¸é ¿¡·¯¸Þ½ÃÁö¿Í ÇÔ²² Á¾·á ÇÏ°í ±×·¸Áö ¾ÊÀ¸¸é grep À» ½á¼ ´©±¸¿¡°Ô·Î
ºÎÅÍ ¸ÞÀÏÀÌ ¿Ô´ÂÁö¸¦ °èÁ¤ »ç¿ëÀÚ¿¡°Ô ¾Ë·ÁÁÖ´Â ÀÏÀ»ÇÑ´Ù.
case ´Â if elif else ¸¦ Á»´õ ÀϹÝÈ ½ÃŲ Á¦¾î±¸Á¶ÀÌ´Ù. if ¹®À» ¾²´õ¶óµµ
¿©·¯¹øÀÇ Á¶°Ç¿¡ ´ëÇØ¼ °Ë»çÇÒ¼öÀÖÁö¸¸ ±×·²°æ¿ì if elif °¡ ¾îÁö·´°Ô Áßø
µÇ´Â °á°ú¸¦ º¸¿©ÁÙ°ÍÀÌ´Ù.
ÀÌ·²¶§ case ¸¦ »ç¿ëÇϸé Á»´õ °¡µ¶¼º°ú À¯Áö°¡ ¿ëÀÌÇÑ Äڵ带 ¸¸µé¾î ³¾¼ö
ÀÖ´Ù. Áï if elsif ¸¦ °£´ÜÇÏ°Ô Ç¥ÇöÇÒ¼ö ÀÖ´Ù.
ÀÌÇØ¸¦ ½±°Ô Çϱâ À§Çؼ ƯÁ¤ÆÄÀÏÀÌ ¾î¶°ÇÑ Æ÷¸äÀÇ ¾ÐÃàÆÄÀÏÀÎÁö¸¦ ¾Ë¾Æ³»´Â
½ºÅ©¸³Æ®¸¦ ¸¸µé¾î º¸µµ·Ï ÇÏÀÚ. ÆÄÀÏÀÇ Á¾·ù¸¦ ¾Ë±â À§Çؼ´Â file À̶õ
¸í·ÉÀ» ¾²¸é µÈ´Ù.
¾Æ·¡ÀÇ ¿¹Á¦¸¦ smartzip À̶õ ÆÄÀÏ·Î ÀúÀåÇϵµ·Ï ÇÏÀÚ.
#!/bin/sh
ftype=`file "$1"`
case "$ftype" in
"$1: gzip compressed"*)
echo "gzip ¾ÐÃà";;
"$1: Zip archive"*)
echo "Zip ¾ÐÃà";;
*)
echo "FLE $1 can not be uncompressed with smartzip";;
easc
|
$1 º¯¼ö´Â ÇÁ·Î±×·¥ÀÇ Ã¹¹øÂ° ¾Æ±Ô¸ÕÆ®¸¦ ÀúÀåÇϰí ÀÖ´Â º¯¼ö´Ù.
ivmdemo.tar.gz ÀÇ ¾ÐÃàÆ÷¸ËÀ» ¾Ë°í ½Í´Ù¸é,
smartzip ivmdemo.tar.gz À̶ó°í ¸í·ÉÀ» ³»¸®¸é µÈ´Ù.
Àú ÀÀå¿¡¼ ´Ù·éÀûÀÌ ÀÖ´Â µ¡¼À ½ºÅ©¸³Æ®¸¦ case ¸¦ ÀÌ¿ëÇÏ¿© »çÄ¢¿¬»êÀ»
¼öÇàÇϵµ·Ï È®Àå½ÃÄѺ¸ÀÚ. ¹°·Ð ¾Æ·¡Àǰæ¿ì ±»ÀÌ ½ºÅ©¸³Æ®¸¦ ¸¸µéÇÊ¿ä ¾øÀÌ
expr ¸¸À» »ç¿ëÇØµµ µ¿ÀÏÇÑ ÀÛ¾÷ÀÌ °¡´ÉÇÏÁö¸¸, ¾îµð±îÁö³ª case ÀÇ È°¿ë¹ý
¿¡ ´ëÇÑ ÀÌÇØ¸¦ À§ÁÖ·ÎÇÔÀÌ´Ï È¿À²¼º, °¡¿ë¼º ±âŸµîµîÀº ¹«½ÃÇϰí
³Ñ¾î°¡±â·Î ÇÏÀÚ.
#!/bin/sh
add()
{
result=`expr $1 + $2`
echo "$1 + $2 = $result"
}
min()
{
result=`expr $1 - $2`
echo "$1 - $2 = $result"
}
div()
{
result=`expr $1 / $2`
echo "$1 / $2 = $result"
}
mul()
{
result=`expr $1 \* $2`
echo "$1 * $2 = $result"
}
#echo "$1, $2"
case $1 in
"-") min $2 $3 ;;
"+") add $2 $3 ;;
"/") div $2 $3 ;;
"*") mul $2 $3 ;;
esac
|
À§ÀÇ ½ºÅ©¸³Æ®´Â ù¹øÂ° ¾Æ±Ô¸ÕÆ®·Î ¿¬»êÀÚ¸¦ ¹Þ¾ÆµéÀÌ°í µÎ¹øÂ° ¼¼¹øÂ° ¾Æ±Ô
¸ÕÆ®·Î °è»êÇϰíÀÚ ÇÏ´Â ¼ýÀÚ¸¦ ÀÔ·ÂÇÑ´Ù.
"add - 1 3" ÀÌ·±½ÄÀ¸·Î »ç¿ëÇÏ¸é µÈ´Ù. ÁÖÀÇÇÒ Á¡Àº °ö¼À(*) ¿¬»êÀ» »ç¿ëÇÒ
°æ¿ì "\" µîÀ» »ç¿ëÇØ¼ "add \* 1 3" Çü½ÄÀ¸·Î ½á¾ßÇÑ´Ù´Â Á¡ÀÌ´Ù.
½©»ó¿¡¼ * ´Â ¿ÍÀϵåÄ«µå È®ÀåÀ» ½ÇÇàÇϱ⠶§¹®ÀÌ´Ù.
À̹ø¿¡´Â select Á¦¾î¹®¿¡ ´ëÇØ¼ ¾Ë¾Æº¸ÀÚ
select ´Â interactive(´ëÈÇü) ¸Þ´º ÇÁ·Î±×·¥À» Â¥´Âµ¥ ¸Å¿ì °£´ÜÇÑ ¹æ¹ýÀ»
Á¦°øÇØÁØ´Ù.
»ç¿ëÀÚ°¡ ¾î¶² OS¸¦ °¡Àå ¼±È£ÇÏ´ÂÁö ¸Þ´º¸¦ º¸°í ±×Áß Çϳª¸¦ ¼±ÅÃÇÏ´Â
ÇÁ·Î±×·¥À» ¸¸µé¾î º¸µµ·Ï ÇÏÀÚ.
#!/bin/sh
echo "What is your favourite OS ?"
select var in "Linux" "Free BSD" "Windows" "Solaris" "Other"
do
break
done
echo "You have selected $var"
|
À§ÀÇ ½ºÅ©¸³Æ®¸¦ ½ÇÇà½ÃŰ¸é ¾Æ·¡¿Í °°Àº ¸Þ´º°¡ ¶ß°í »ç¿ëÀÚÀÇ ÀÔ·ÂÀ» ¿ä±¸ÇÏ´Â
ÇÁ·ÒÇÁÆ®°¡ ´ë±â ÇÏ°Ô µÉ°ÍÀÌ´Ù.
What is your favourite OS ?
1) Linux
2) Free BSD
3) Windows
4) Solaris
|
¿øÇÏ´Â ¿î¿µÃ¼Á¦ÀÇ ¹øÈ£(1 - 4) ¸¦ ¼±ÅÃÇÏ¸é ¼±ÅÃµÈ ¹øÈ£ÀÇ ¹®ÀÚ¿ÀÌ var º¯¼ö¿¡
ÀúÀåµÈ´Ù. 1 À» ÀÔ·ÂÇÏ¿´´Ù¸é var º¯¼ö¿£ Linux °¡ ÀúÀå µÈ´Ù.
while Àº Á¶°ÇÀÌ ¸¸Á·ÇÏ´Â µ¿¾È ·çÇÁ¸¦ ¹Ýº¹ÇÑ´Ù.
´ÙÀ½Àº while ¸¦ »ç¿ëÇØ¼ 1ºÎÅÍ 10±îÁö Ãâ·ÂÇÏ´Â °£´ÜÇÑ ÇÁ·Î±×·¥ÀÌ´Ù.
#!/bin/sh
a=0
while [ $a -lt 10 ]
do
a=`expr $a + 1`
echo $a
done
|
bashsehll ¿¡¼ÀÇ for ¹®Àº CÀÇ for ¹®°ú´Â »ç¿ë¿¡ ÀÖ¾î¼ Â÷À̰¡ ³´Ù.
sehll ¿¡À־ in ´ÙÀ½ÀÇ °ªµéÀ» Â÷·Ê´ë·Î º¯¼ö¿¡ ÀÔ·ÂÇÏ´Â ÀÏÀ» ÇÑ´Ù.
#!/bin/sh
for var in A B C
do
echo "var is $var"
done
|
for ¹®À» ÀÌ¿ëÇÑ Á»´õ À¯¿ëÇÑ ½ºÅ©¸³Æ®¸¦ ¸¸µé¾î º¸µµ·Ï ÇÏÀÚ.
¾Æ·¡ÀÇ ½ºÅ©¸³Æ®´Â ¹èÆ÷ÆÇ CD¿¡ ÇØ´ç rpmÀÌ ÀÖ´ÂÁö¸¦ È®ÀÎÇϰí,
ÀÖ´Ù¸é rpm ÆÐŰÁöÀÇ Á¤º¸¸¦ º¸¿©ÁÖ´Â ÀÏÀ» ÇÑ´Ù.
¾Æ·¡ÀÇ ³»¿ëÀ» showrpm À¸·Î ÀúÀåÇϵµ·Ï ÇÏÀÚ.
#!/bin/sh
for rpmpackage in $*
do
if [ -r "$rpmpackage" ]
then
echo "================ $rpmpackage ============="
rpm -qi -p $rpmpackage
else
echo "ERROR: cannot read file $rpmpackage"
fi
done
|
À§ÀÇ ½ºÅ©¸³Æ®¸¦ º¸¸é $* À̶ó´Â º¯¼ö°¡ º¸ÀϰÍÀÌ´Ù.
$*´Â ¸ðµç ¾Æ±Ô¸ÕÆ®¸¦ ÀúÀåÇÏ´Â º¯¼öÀÌ´Ù.
#!/bin/sh
echo $SHELL
echo "$SHELL"
echo '$SHELL'
|
À§ÀÇ ½ºÅ©¸³Æ®¿¡¼ 1¹øÂ°¿Í 2¹øÂ°ÀÇ °æ¿ì ÀÚ½ÅÀÌ »ç¿ëÇÏ´Â ½©À»
Ãâ·ÂÇÏÁö¸¸ (¾Æ¸¶µµ /bin/bash) 3¹øÂ°ÀÇ °æ¿ì $SHELL ÀÚü¸¦
Ãâ·ÂÇÏ´Â°É º¼¼ö ÀÖÀ»°ÍÀÌ´Ù. ' ¸¦ »ç¿ëÇϸé
½©ÀÌ »ç¿ëÇϴ Ư¼ö¹®ÀÚ(keyword)¸¦ ÀϹÝÈ ½ÃÄѼ »ç¿ëÇÒ¼ö
ÀÖ´Ù.
¶ÇÇÑ ¹é½½·¯½¬¸¦ »ç¿ëÇØ¼ ¿ÍÀϵåÄ«µå³ª º¯¼ö±âÈ£¿Í °°Àº
Ư¼öÇÑ ¹®ÀÚ¸¦ ÀϹÝÈ ½Ãų¼öµµ ÀÖ´Ù.
À§¿¡¼ ¹é½½·¯½¬¸¦ »ç¿ëÇÔÀ¸·Î½á $ ÀÇ Æ¯º°ÇÑ Àǹ̸¦
Á¦°Å½ÃÄÑ ¹ö¸²À¸·Î½á $SHELL À̶õ ¹®ÀÚ¿À» Ãâ·ÂÇϵµ·Ï ¸¸µç´Ù.
¿¹¸¦ µé¾î¼ $1,000 ¸¦ ȸ鿡 Ãâ·Â
½ÃŰ·Á°í ÇÑ´Ù°í °¡Á¤ÇÏÀÚ ÀÌ·²¶§ ¾Æ·¡¿Í °°ÀÌ ½á¹ö¸®¸é
¾Æ¹«·± °ªµµ Ãâ·ÂµÇÁö ¾ÊÀ½À» ¾Ë¼ö ÀÖ´Ù.
¿Ö³Ä¸é ½©Àº 1000 ¾Õ¿¡ $ °¡ ÀÖÀ½À¸·Î À̸¦
º¯¼ö¸íÀ¸·Î »ý°¢Çϰí ÀÌ º¯¼ö¸í¿¡
ÀúÀåµÈ °ªÀ» echo ÇÏ·Á°í ÇÒ°ÍÀ̱⠶§¹®ÀÌ´Ù.
¿ì¸®°¡ ¿øÇÏ´Â °ªÀ» ¾òÀ»·Á¸é ¾Æ·¡¿Í °°ÀÌ Äڵ带 ¼öÁ¤ÇØ¾ß ÇÑ´Ù.
¿©·¯ºÐÀÌ Á»´õ º¹ÀâÇÑ ÇÁ·Î±×·¥À» ¸¸µé´Ùº¸¸é ÇÔ¼öÀÇ
Çʿ伺À» ´À³¢°Ô µÉ°ÍÀÌ´Ù.
ÇÔ¼ö¸¦ »ç¿ëÇÔÀ¸·Î½á, Á»´õ ÀÌÇØÇϱ⠽±°í
´Ü¼øÇÑ ÇÁ·Î±×·¥À» ¸¸µé¼ö ÀÖÀ¸¸ç,
Àç»ç¿ëÀ» ¿ëÀÌÇϵµ·Ï ¸¸µé¼ö ÀÕ´Ù.
ÇÔ¼ö´Â ´ÙÀ½°ú °°ÀÌ ¼±¾ðÇÑ´Ù.
sehll Àº ½ºÅ©¸³Æ® ¾ð¾îÀÌ°í ¼øÂ÷ÀûÀ¸·Î ½ÇÇàÀÌ µÇ¹Ç·Î
ÇÔ¼ö¸¦ »ç¿ëÇϱâ Àü¿¡ ¸ÕÀú ¼±¾ðÀ» ÇØÁÖ¾î¾ß¸¸ ÇÑ´Ù.
#!/bin/sh
help()
{
cat << HELP
xtitle bar -- change the name of an xterm, gnome-teminal or kde konsole
Usage: xtitlebar [-h] "string_for_titlebar"
OPTIONS: -h help text
EXAMPLE: xtitlebar "cvs"
HELP
exit 0
}
[ -z "$1" ] && help
[ "$1" = "-h" ] && help
|
ÇÔ¼ö¸¦ ÀÌ¿ëÇÑ °£´ÜÇÑ µ¡¼À ½ºÅ©¸³Æ®¸¦ ¸¸µé¾î º¸ÀÚ.
2°³ÀÇ ÀÎÀÚ¸¦ ¹Þ¾ÆµéÀ̰í À̸¦ ´õÇÑÈÄ Ãâ·ÂÇÏ´Â ÀÏÀ» ÇÑ´Ù.
#!/bin/sh
add()
{
result=`expr $1 + $2`
echo "$1 + $2 = $result"
}
add $1 $2
|
°¢ ¸í·ÉÇà ÀÎÀÚ´Â $* °ú $1, $2, $3, ... µîÀÇ º¯¼ö¸¦ ÅëÇØ¼
°¡Á®¿Ã¼ö ÀÖ´Ù.
±×·¯³ª ÀÌ·¯ÇÑ ¸í·ÉÇà ÀÎÀÚµéÀ» ´Ü¼øÈ÷ ÀоîµéÀÌ´Â
°Í¸¸À¸·Î´Â -h ¿Í °°Àº ¸í·ÉÇà ¿É¼Ç¿¡
´ëÇÑ ³»¿ëÀº ´Ù·ê¼ö ¾ø´Ù. ¿Ö³Ä¸é shell ¿¡¼´Â -h ¸¦
¿É¼ÇÀÌ ¾Æ´Ñ ÀÎÀÚ·Î Ãë±ÞÇϱâ
¶§¹®ÀÌ´Ù. À̸¦ ó¸®Çϱâ À§Çؼ´Â ¾à°°ÀÇ ±â¼úÀÌ ÇÊ¿äÇÏ´Ù.
º¸Åë C¿¡¼´Â getopt()¿Í
°°Àº ÇÔ¼ö¸¦ ÀÌ¿ëÇØ¼ ¿É¼ÇÀ» ó¸®ÇÑ´Ù.
¾Æ·¡´Â ¸í·ÉÇà ÀÎÀÚ¸¦ ºÐ¼®ÇÏ´Â ½©ÇÁ·Î±×·¥ÀÌ´Ù. ÇÁ·Î±×·¥ÀÇ À̸§Àº
cmdparser ·Î ÇÏÀÚ
#!/bin/sh
help()
{
cat << HELP
This is a generic command line parser demo.
Usage Example : cmdparser -l hello -f somefile1 somefile2
HELP
exit 0
}
while [ -n "$1" ]
do
case $1 in
-h) help; shift1;;
-f) opt_f=1;shift 1;;
-l) opt_l=$2;shift 2;;
--) shift;break;;
-*) echo "error : no such option $1. -h for help"; exit 1;;
*) break;
esac
done
echo "opt_f is $opt_f"
echo "opt_l is $opt_1"
echo "first arg is $1"
echo "2nd arg is $2"
|
shift ¶õ »õ·Î¿î ½©¸í·ÉÀÌ ³ª¿Ô´Âµ¥,
¾Æ±Ô¸ÕÆ®¸¦ Çϳª¾¿ À̵¿½ÃŰ´Â ÀÏÀ»ÇÑ´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº
man bash ¸¦ ÂüÁ¶Çϱ⠹ٶõ´Ù.
À§ÀÇ ½ºÅ©¸³Æ®¸¦ cmdparser -l hello -f -- -somefile1 somefiel2 ·Î
½ÇÇà½ÃÄѺ¸¸é ¾Æ·¡¿Í °°Àº °á°ú°¡ ³ª¿Ã°ÍÀÌ´Ù.
opt_f is 1
opt_l is hello
first arg is -somefile1
2nd arg is somefile2
|
À§ÀÇ ÇÁ·Î±×·¥ÀÌ ¾î¶»°Ô µ¿ÀÛÇÏ´ÂÁö ¾Ë¾Æº¸ÀÚ, À§ÀÇ ·çÇÁ´Â ¾Æ±Ô¸ÕÆ®°¡
°Ë»öµÉ¶§±îÁö °è¼ÓÇØ¼ ¼øÈ¯Çϵµ·Ï µÇ¾î ÀÖÀ¸¸ç case ¸¦ ÀÌ¿ëÇØ¼
¾Æ±Ô¸ÕÆ®¿Í ´ëÀÀµÇ´Â °ªÀ» ¸ÅνÃŲ´Ù. ¸¸¾à¿¡ ¸ÅĪµÈ °ªÀ» ã¾Ò´Ù¸é,
ÇØ´ç ¸í·É¾î³ª ÇÔ¼ö¸¦ ½ÇÇàÇϰí shift ¸¦ ÀÌ¿ëÇØ¼ ÇÊ¿äÇÑ ¸¸Å ¾Æ±Ô¸ÕÆ®¸¦
À̵¿½ÃŲ´Ù.