|
Ç¥ÁØ ÀÔÃâ·Â
ÀÌÀü ±â»ç¿¡¼
Ç¥ÁØ Ãâ·Â(stdout)À¸·Î Ãâ·ÂÀ» Çϱâ À§Çؼ echo ¸í·ÉÀ» - ¿ÜºÎ ÇÁ·Î±×·¥À¸·Î
°°Àº ¿ªÇÒÀ» ÇÏ´Â echo°¡ ÀÖÁö¸¸ ¿©±â¼ÀÇ echo´Â ½©ÀÇ ³»Àå(built-in)¸í·ÉÀÌ´Ù.
- »ç¿ëÇÏ¿´´Ù. ±×·¸´Ù¸é Ç¥ÁØ ÀÔ·Â(stdin)À¸·Î »ç¿ëÀÚ ÀÔ·ÂÀ» ¹ÞÀ» ¼ö ÀÖ´Â
¹æ¹ýÀº? Ç¥ÁØ ÀÔ·ÂÀ» ¹Þ¾Æ º¯¼ö¿¡ ÀúÀåÀ» ÇØÁÖ´Â read ¸í·ÉÀÌ ÀÖ´Ù.
|
$ cat ./stdio
#!/bin/sh
#
# stdio: Ç¥ÁØ ÀÔ·ÂÀ» ¹Þ¾Æ Ç¥ÁØ Ãâ·ÂÀ¸·Î Ç¥½ÃÇÑ´Ù.
#
echo -n ¡°Type
the filename: ¡°
read filename
if [ -e $filename
]
then
echo $filename exists.
else
echo $filename doesn¡¬¡¯t exist.
fi
$ ./stdio
Type the filename: /dev/fd0
/dev/fd0 exists.
$ ./stdio
Type the filename: /dev/fd0 ./stdio
./stdio: [: /dev/fd0: binary operator
expected
/dev/fd0 ./stdio doesn¡¯t exist.
|
stdio
¿¹Á¦¿¡¼ ó·³ read´Â Ç¥ÁØ ÀÔ·ÂÀÇ ÇÑ ÁÙÀ» ¸ðµÎ filenameÀ̶ó´Â º¯¼ö¿¡
³Ö´Â´Ù. (ÇÑ ÁÙÀº ¿£Å͸¦ ÀÔ·ÂÇÔÀ¸·Î¼ ³¡³´Ù.) ÇÏÁö¸¸ À§¿Í °°ÀÌ ÇÒ °æ¿ì,
ÀԷ°ªÀÌ ¿©·¯ °³¶ó¸é ¹®Á¦°¡ »ý±æ ¼ö ÀÖ´Ù. µÎ °³ÀÇ ÆÄÀϸíÀ» °ø¹éÀ¸·Î ±¸ºÐÇÏ¿©
ÀÔ·ÂÇÒ °æ¿ì °¢°¢ÀÌ µû·Î ÀúÀåµÇ´Â °ÍÀÌ ¾Æ´Ï¶ó ÇϳªÀÇ filename º¯¼ö¿¡ µé¾î°¡±â
¶§¹®¿¡ if Á¶°Ç½Ä¿¡¼ ½ÇÆÐ¸¦ ÇÑ´Ù. ÀÌ·± °æ¿ì °¡Àå óÀ½¿¡ ÀÔ·ÂµÈ ÆÄÀÏ¸í¸¸À»
¹Þ¾Æ ó¸®ÇÏ°í ³ª¸ÓÁö´Â ¹«½ÃÇÏ·Á¸é? read ´ÙÀ½¿¡ º¯¼ö¸¦ ¿©·¯ °³¸¦ ¸í½ÃÇϸé
µÈ´Ù. Ç¥ÁØ ÀÔ·ÂÀº °ø¹é ¹®ÀÚ·Î - ½ºÆäÀ̽º¿Í ÅÇ - ±¸ºÐÀÌ µÇ°í ±¸ºÐµÈ °¢°¢ÀÇ
°ªµéÀº read ´ÙÀ½¿¡ ¸í½ÃµÈ º¯¼ö¿¡ Â÷·Ê·Î ä¿öÁø´Ù. °¡Àå ¸¶Áö¸· º¯¼ö¿¡´Â ³ª¸ÓÁö
³²¾ÆÀÖ´Â ÀԷ°ªµéÀÌ ¸ðµÎ ´Ù µé¾î°£´Ù.
|
$ cat ./stdio2
#!/bin/sh
#
# stdio2: Ç¥ÁØ ÀÔ·ÂÀ» ¹Þ¾Æ Ç¥ÁØ Ãâ·ÂÀ¸·Î Ç¥½ÃÇÑ´Ù.
#
echo -n ¡°Type
the filename: ¡°
read filename1 filename2 dummy
for fn in
$filename1 $filename2
do
if [ -e $fn ]
then
echo $fn exists.
else
echo $fn doesn¡¬¡¯t exist.
fi
done
echo Ignore
$dummy
$ ./stdio2
Type the filename: /dev/hda1 /etc/bashrc
/bin/sh /bin/ls
/dev/hda1 exists.
/etc/bashrc exists.
Ignore /bin/sh /bin/ls
|
Áï, stdio2ÀÇ
¿¹¿¡¼ °ø¹éÀ¸·Î ±¸ºÐµÈ ÀÔ·Â /dev/hda1Àº filename1¿¡, /etc/bashrc´Â
filenam2¿¡ /bin/sh /bin/ls´Â dummy¿¡ µé¾î°¡°Ô µÇ´Â °ÍÀÌ´Ù.
¾ÏÈ£¸¦ ÀԷ¹ÞÀ» °æ¿ì¿Í °°ÀÌ Àá½Ã Űº¸µå ÀÔ·ÂÀÌ È¸é¿¡ Ç¥½ÃµÇÁö - ÀÌ·¸°Ô ÀÔ·ÂÀÌ
ȸ鿡 Ãâ·ÂµÇ´Â °ÍÀ» echo¶ó°í ¸»ÇÑ´Ù. - ¾Ê°Ô ÇÏ·Á¸é stty ÇÁ·Î±×·¥À»
ÀÌ¿ëÇÏ¿© echo¸¦ ¾ø¾Ö¸é µÈ´Ù. ÈÄ¿¡ ´Ù½Ã º¹¿øÀ» ÇØ¾ßÇÑ´Ù. ½ºÅ©¸³Æ®°¡ echo¸¦
´Ù½Ã º¹¿øÇÏÁö ¸øÇÏ°í ºñÁ¤»óÀûÀ¸·Î Á¾·áÇÒ °æ¿ì¸¦ ´ëºñÇÏ¿© ¹Ýµå½Ã trap ±¸¹®À»
µÎ¾î¾ß ÇÑ´Ù.
|
$ cat pswd
#!/bin/sh
#
# pswd: ¾ÏÈ£¸¦ ÀԷ¹޴´Ù.
#
trap ¡®stty
echo; exit¡¯ 0 1 2 3 15
echo -n ¡°Enter
password: ¡°
stty -echo
read password
stty echo
echo
echo ¡°Your
password is $password¡±
|
¸®´ÙÀÌ·º¼Ç
(Redirection)
¿ì¸®´Â ½©
»ó¿¡¼ <, >, >>¸¦ ÀÌ¿ëÇÏ¿© Ç¥ÁØ ÀÔÃâ·ÂÀ» ¸®´ÙÀÌ·º¼Ç(redirection)ÇÒ
¼ö ÀÖ´Ù.
½© ½ºÅ©¸³Æ® »ó¿¡¼µµ ±×¿Í °°Àº ÀÏÀÌ °¡´ÉÇÏ´Ù. exec¸¦ ÀÌ¿ëÇÏ´Â °ÍÀÌ´Ù.
|
$ cat redirect
#!/bin/sh
#
# redirect: Ç¥ÁØ ÀÔ·ÂÀ» ÆÄÀÏ·Î ¸®´ÙÀÌ·º¼ÇÇÑ´Ù.
#
temp=/tmp/delme$$
# $$´Â ÇöÀç ÇÁ·Î¼¼½ºÀÇ id°ªÀ» ³Ñ°ÜÁØ´Ù.
echo ¡°This is line1.
This is line2.
This is line3.¡± > $temp
exec < $temp
read line; echo $line
read line; echo $line
read line; echo $line
$ ./redirect
This is line1.
This is line2.
This is line3.
|
redirect
¿¹Á¦¿¡¼ exec ¸í·É¿¡ ÀÇÇØ¼ Ç¥ÁØ ÀÔ·ÂÀÌ /tmp/delme$$ ÆÄÀÏ·Î ¸®´ÙÀÌ·º¼ÇµÇ¾î
read ¸í·ÉÀº ±× ÆÄÀÏ¿¡¼ ÇÑ ÁÙ¾¿ ÀÔ·ÂÀ» ¹Þ°Ô µÈ´Ù. º» ½©ÀÇ ¸®´ÙÀÌ·º¼Ç¿¡¼
°¢ Ç¥ÁØ ÀÔ·Â, Ç¥ÁØ Ãâ·Â, Ç¥ÁØ ¿¡·¯´Â ÆÄÀÏ µð½ºÅ©¸³ÅÍ 0, 1, 2¿¡ ÇØ´çÇÑ´Ù.
±× ¿Ü¿¡ 3~9±îÁö µð½ºÅ©¸³Å͸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
|
$ cat fredirect
#!/bin/sh
#
# fredirct: µ¿ÀûÀÎ ¸®´ÙÀÌ·º¼Ç º¯°æ
#
outfile=fredirect.out
exec 3<&1
# Ç¥ÁØ Ãâ·Â°ú 3¹ø ÆÄÀÏ µð½ºÅ©¸³Å͸¦ ÀÏÄ¡½ÃŲ´Ù.
# Ç¥ÁØ Ãâ·ÂÀ» 3¹ø ÆÄÀÏ µð½ºÅ©¸³ÅÍ¿¡ ÀúÀåÇØµÎ´Â ¿ªÇÒ
/bin/rm -f
$outfile
while
echo -n ¡°Enter command or CTRL-D to
quit: ¡°
read cmd
do
exec >> $outfile
# Ç¥ÁØ Ãâ·ÂÀ» fredirect.out ÆÄÀÏ·Î ¸®´ÙÀÌ·º¼Ç
echo $cmd
exec >&3
# ÆÄÀÏ·Î º¯È¯µÈ °ÍÀº ´Ù½Ã Ç¥ÁØ Ãâ·ÂÀ¸·Î º¹¿ø
done
$ ./fredirect
Enter command or CTRL-D to quit: 21
Enter command or CTRL-D to quit: 234
Enter command or CTRL-D to quit: 2
Enter command or CTRL-D to quit: sjf
Enter command or CTRL-D to quit: sd
Enter command or CTRL-D to quit: kd
Enter command or CTRL-D to quit:
$ cat fredirect.out
21
234
2
sjf
sd
kd
|
while,
until, for, if, case ±¸¹®¿¡¼ °¡Àå ¸¶Áö¸· ÁÙ¿¡ - done,
fi, esac µÚ¿¡ - ¸®´ÙÀÌ·º¼ÇÀ» ÁöÁ¤ÇÏ¿© ±× ±¸¹® ³»¿¡¼ÀÇ ÀÔÃâ·Â¸¸À» º¯°æÇÒ
¼ö ÀÖ´Ù. ±× ±¸¹®À» ºüÁ®³ª¿Ã ¶§¿¡´Â ¿ø·¡´ë·Î º¹¿øÀÌ µÈ´Ù.
|
$ cat bredirect
#!/bin/sh
#
# bredirct: ƯÁ¤ ±¸¹®¿¡¼¸¸ ¸®´ÙÀÌ·º¼ÇÀ» ÇÑ´Ù.
#
for arg
do
echo $arg
done > bredirect.out 2> /tmp/bredirect.err
# ¿¡·¯¸¦ Ç¥ÁØ ¿¡·¯·Î
Ãâ·ÂÇϰí Àӽà ¿¡·¯ ÆÄÀÏÀ» Áö¿î´Ù.
if [ -s bredirect.err ]
then
/bin/cat /tmp/bredirect.err 1>&2
fi
/bin/rm -f /tmp/bredirect.err
$ ./bredirect 1 2 3 45
$ cat ./bredirect.out
1
2
3
45
|
°æ·Î¸í
½© ½ºÅ©¸³Æ®¸¦
ÀÌ¿ëÇÏ¿©¼ ÆÄÀÏÀ» ´Ù·ç´Ùº¸¸é °æ·Î¸íÀ» Á¶ÀÛÇØ¾ßÇÒ Çʿ䰡 ÀÖ´Ù. º¸Åë °æ·Î¸íÀº ¡®µð·ºÅ丮¸í/ÆÄÀÏ¸í¡¯
Çü½ÄÀ¸·Î µÇ¾î ÀÖ´Ù. ÀÌ·¸°Ô »ç¿ëÀÚÀÇ ÀÔ·ÂÀ̳ª ȯ°æ º¯¼ö µîÀ» ÅëÇØ¼ ¾ò¾îÁø °æ·Î¸í¿¡¼
µð·ºÅ丮¸í¿Í ÆÄÀϸíÀ» ºÐ¸®ÇØÁÖ´Â basename°ú dirnameÀ̶ó´Â ÇÁ·Î±×·¥ÀÌ
ÀÖ´Ù.
Àº °æ·Î¸í¿¡¼
ÆÄÀÏ¸í¸¸À» ³Ñ°ÜÁØ´Ù. ÀÌ ¶§ ÆÄÀÏÀÌ ½ÇÁ¦·Î Á¸ÀçÇÒ ÇÊ¿ä´Â ¾ø´Ù.
Àº ÆÄÀÏ¸í¿¡¼
ÁöÁ¤ÇÑ È®ÀåÀÚ ºÎºÐÀ» ¾ø¾Ø´Ù.
Àº °æ·Î¸í¿¡¼
µð·ºÅ丮 ºÎºÐ¸¸À» ³Ñ°ÜÁØ´Ù.
|
$ basename
/home/httpd/index.html
index.html
$ basename /home/httpd/index.html .html
index
$ dirname /home/httpd/index.html
/home/httpd
|
¼ö½Ä °è»ê
: expr
½ºÅ©¸³Æ®¿¡¼´Â
±âº»ÀûÀÎ ¸ðµç °ªµéÀ» ¹®ÀÚ¿·Î ó¸®Çϱ⠶§¹®¿¡ ¼ýÀÚ°ªÀ» ÀÌ¿ëÇÑ ¼ö½Ä °è»êÀ» Çϱâ
À§Çؼ´Â expr ÇÁ·Î±×·¥À» ÀÌ¿ëÇØ¾ß ÇÑ´Ù.
ÀÎÀÚ´Â ¼ýÀÚ°ªÀ̳ª
¹®ÀÚ¿ÀÌ µÉ ¼ö ÀÖ°í, ¿¬»êÀÚ´Â ¼ö½Ä ¿¬»êÀÚ, °ü°è ¿¬»êÀÚ, ³í¸® ¿¬»êÀÚ ¼¼ °¡Áö
Á¾·ù°¡ ÀÖ´Ù. ÀÎÀÚ¿Í ¿¬»êÀÚ »çÀÌ¿¡´Â ¹Ýµå½Ã °ø¹éÀ¸·Î ±¸ºÐµÇ¾î¾ß¸¸ ÇÑ´Ù. exprÀÇ
°á°ú°ªÀÌ 0ÀÌ ¾Æ´Ï°Å³ª nullÀÌ ¾Æ´Ï¸é Á¾·á »óŰªÀº 0ÀÌ´Ù. 0À̳ª nullÀÏ
°æ¿ì¿¡´Â 1ÀÌ°í ¼ö½ÄÀÌ À¯È¿ÇÏÁö ¾ÊÀ» °æ¿ì´Â 2ÀÌ´Ù.
Áö¿øÇÏ´Â
¼ö½Ä ¿¬»êÀÚ´Â +, -, *, /, %°¡ ÀÖ°í, ¿¬»ê ¼øÀ§´Â ÀϹÝÀûÀÎ ¼øÀ§¸¦ µû¸¥´Ù.
¿¬»ê ¼øÀ§ º¯°æÀ» À§ÇÑ °ýÈ£ ¶ÇÇÑ »ç¿ëÇÒ ¼ö ÀÖ´Ù. *, (, )´Â ½©¿¡¼ Ưº°È÷
»ç¿ëµÇ±â ¶§¹®¿¡ ¼ö½Ä¿¡¼ »ç¿ëÇÏ·Á¸é ¡¬¿Í ÇÔ²² ¾²¿©¾ß ÇÑ´Ù. ¼ö½Ä ¿¬»êÀÚ°¡ ¿Ã
¶§ÀÇ ÀÎÀÚ´Â Á¤¼ö°ªÀÌ µÇ¾î¾ß¸¸ ÇÑ´Ù. ¼ö½Ä °è»êÀÇ °á°ú°ªÀÌ Ãâ·ÂµÈ´Ù.
|
$ expr 3 +
5 ¡¬* 2
13
$ expr ¡¬( 3 + 5 ¡¬) ¡¬* 2
16
$ echo $1
1
$ expr $i + 1
2
|
Áö¿øÇÏ´Â
°ü°è ¿¬»êÀÚ´Â =, !=, >, >=, <, <= ÀÌ ÀÖ°í,
>¿Í <´Â ¡¬°ú ÇÔ²² »ç¿ëµÇ¾î¾ß ÇÑ´Ù. ºñ±³ÇÑ °á°ú°¡ ÂüÀ̸é 1À» Ãâ·ÂÇϰí,
°ÅÁþÀ̸é 0À» Ãâ·ÂÇÏ´Ù. ÀÌ ¶§ ÀÎÀÚ´Â Á¤¼ö, ½Ç¼ö, ¹®ÀÚ¿ÀÌ ¸ðµÎ ´Ù ¿Ã ¼ö
ÀÖ´Ù.
|
$ echo $USER
hermes44
$ expr $USER = hermes44
1
$ expr 3 ¡¬> 5
0
$ expr 4.5 ¡¬<= 4.5
1
|
³í¸® ¿¬»êÀÚ´Â
3°¡Áö°¡ ÀÖ´Ù. |, &, :ÀÌ´Ù. °¢ OR, AND, Á¤±Ô½Ä °Ë»öÀ» ³ªÅ¸³»¸ç
|¿Í &´Â \¿Í ÇÔ²² »ç¿ëµÇ¾î¾ß ÇÑ´Ù.
¡¤|´Â ORÀÌ´Ù.
ÀÎÀÚ1°ú ÀÎÀÚ2°¡ µÑ ´Ù 0ÀÌ ¾Æ´Ï¸é ÀÎÀÚ1À» Ãâ·ÂÇÏ°í ±×·¸Áö ¾ÊÀ¸¸é 0À»
Ãâ·ÂÇÑ´Ù.
¡¤&´Â ANDÀÌ´Ù. ÀÎÀÚ 1ÀÌ 0ÀÌ ¾Æ´Ï¸é ÀÎÀÚ 1À» Ãâ·ÂÇϰí, ±×·¸Áö
¾ÊÀ¸¸é ÀÎÀÚ 2¸¦ Ãâ·ÂÇÑ´Ù.
¡¤:´Â Á¤±Ô½Ä(regular expression) °Ë»öÀÌ´Ù. ÀÎÀÚ1¿¡´Â ¾î¶² ¹®ÀÚ¿ÀÌ
¿À°í, ÀÎÀÚ2¿¡´Â Á¤±Ô½Ä
ÀÌ ¿Â´Ù. ÀÎÀÚ1¿¡¼ ÀÎÀÚ2·Î ÁÖ¾îÁø Á¤±Ô½Ä¿¡
ÇØ´çÇÏ´Â ÆÐÅÏÀ» ã´Â´Ù.ÀÎÀÚ2¸¦ ¡¬(¿Í ¡¬)·Î
°ýÈ£¸¦ ¾º¿ì¸é ÆÐÅÏ¿¡ ÇØ´çÇÏ´Â ÀÎÀÚ1ÀÇ ºÎºÐÀ»
Ãâ·ÂÇÏ°í °ýÈ£°¡ ¾øÀ» ¶§¿¡´Â ÆÐÅÏÀÌ ÀÏÄ¡
Çϴ ȸ¼ö¸¦ Ãâ·ÂÇÑ´Ù.(Á¤±Ô½ÄÀÇ Çü½Ä¿¡ ´ëÇÑ »çÇ×Àº
ÀÌ ±â»çÀÇ ¹üÀ§¸¦ ³Ñ¾î°¡±â ¶§¹®¿¡
»ý·«ÇÑ´Ù).
|
$ echo $1
1
$ expr $i ¡¬> 5 ¡¬| $i + 1
2
$ expr $i ¡¬< 5 ¡¬& $i + 1
1
$ export d=`date`; echo $d
Mon Oct 10 00:53:04 KST 1999
$ expr ¡°$d¡± : ¡®.*¡¯
28
$ expr ¡°$d¡± : ¡®¡¬(.*¡¬)¡¯
Mon Oct 18 00:53:04 KST 1999
$ expr ¡°$d¡± : ¡®[a-zA-Z]*¡¯
3
$ expr ¡°$d¡± : ¡®¡¬([a-zA-Z]*¡¬)¡¯
Mon
|
¿©·¯ ÇÁ·Î±×·¥À»
ÇϳªÀÇ ½ºÅ©¸³Æ®·Î
¸¹Àº ½ºÅ©¸³Æ®¸¦
ÀÛ¼ºÀ» ÇÏ´Ù º¸¸é ´ÙÀ½°ú °°Àº °æ¿ì°¡ ¹ß»ýÇÒ ¼ö ÀÖ´Ù.
¡¤°°Àº µ¿ÀÛÀ»
ÇÏ´Â ´Ù¸¥ À̸§ÀÇ ÇÁ·Î±×·¥µé. ¿¹¸¦ µé¾î ¹®¼ ÆíÁý±âÀÎ ex, vi, view´Â
À̸§Àº
´Ù¸£Áö¸¸ ´Ù °°Àº ÇÁ·Î±×·¥ÀÌ´Ù. ÇÏÁö¸¸ ¾î¶² À̸§À¸·Î ½ÇÇàÇÏ´À³Ä¿¡
µû¶ó µ¿ÀÛÀÌ Á¶±Ý¾¿
´Ù¸£´Ù. ex´Â ÁÙ ÆíÁý±â ¸ðµå·Î ½ÃÀÛÇϰí, vi´Â ȸé
ÆíÁý±â ¸ðµå·Î ½ÃÀÛÇÑ´Ù. view´Â Àбâ
Àü¿ë ¸ðµå·Î ÆÄÀÏÀ» ¿¬´Ù.
¡¤´Ù¸¥ ÇÁ·Î±×·¥ÀÌÁö¸¸ °øÅëµÇ´Â ºÎºÐÀÌ ¸¹´Ù. ¿¹¸¦ µé¾î jdkÆÐŰÁöÀÇ µé¾îÀÖ´Â java,
javac,
javadoc, jar, jdb, appletview µîÀº
¸ðµÎ .javawrapper ½ºÅ©¸³Æ®¿¡ ¸µÅ©µÇ¾î ÀÖ´Ù.
.javawrapper´Â Àڹ٠ȯ°æÀ» ¼³Á¤À» Çϰí ÇØ´çÇÏ´Â
ÇÁ·Î±×·¥À» ½ÇÇà½ÃÄÑ ÁØ´Ù.
ÀÌ¿Í °°Àº
°æ¿ì¿¡ °øÅëµÇ´Â ºÎºÐÀ» Çϳª·Î ¹¾î ÁÖ°Ô µÈ´Ù¸é µð½ºÅ© °ø°£À» Àý¾àÇÒ ¼ö ÀÖÀ»
»Ó¸¸ ¾Æ´Ï¶ó, ÄÚµù¿¡ µå´Â ³ë·Âµµ ÁÙ¿©ÁÙ ¼ö ÀÖ°í, °¢ °øÅëµÇ´Â ºÎºÐ¿¡ ´ëÇÑ Àϰü¼ºÀ»
À¯ÁöÇÒ ¼ö°¡ ÀÖ´Ù. ½© ½ºÅ©¸³Æ®¿¡¼´Â °øÅëµÇ´Â ºÎºÐÀ» ó¸®ÇÏ°í ½ÇÇàÇÑ ÇÁ·Î±×·¥ÀÇ
À̸§À» »ìÆìº¸¾Æ °¢°¢¿¡ ÇØ´çÇϴ ó¸®¸¦ ÇÑ´Ù.
°øÅë ºÎºÐ¿¡
´ëÇÑ ÇÙ½É ½ºÅ©¸³Æ®¸¦ ¸¸µç´Ù. °¢°¢ÀÇ ÇÁ·Î±×·¥Àº ÇÙ½É ½ºÅ©¸³Æ®¿¡ ´ëÇÑ ¸µÅ©·Î ¸¸µç´Ù.
±× ½ºÅ©¸³Æ®¿¡¼´Â °øÅëµÈ ºÎºÐÀ» ó¸®Çϰí ÇÁ·Î±×·¥ÀÇ À̸§, $0¸¦ º¸°í¼ °¢ ÇÁ·Î±×·¥¿¡
´ëÇÑ ÀÛ¾÷À» ¼öÇàÇÑ´Ù.
|
$ cat sc_core
#!/bin/sh
#
# sc_core: °øÅëµÇ´Â ºÎºÐÀ» ó¸®ÇÏ´Â ÇٽɺκÐ
#
echo Setup
the Environments and Flags
case ¡°$0¡±
in
*sc1)
echo Excute sc1 ;;
*sc2)
echo Excute sc2 ;;
*)
echo Invalid commnad !
exit 1 ;;
esac
$ ln -s sc_core sc1
$ ln -s sc_core sc2
$ ./sc1
Setup the Environments and Flags
Excute sc1
$ ./sc2
Setup the Environments and Flags
Excute sc2
|
½ÇÇàÇÑ ÆÄÀÏÀ̸§À»
ãÀ» ¶§ sc_core ¿¹Á¦¿¡¼¿Í °°ÀÌ ¡®*ÆÄÀÏ¸í¡¯ ÆÐÅÏÀ» ÀÌ¿ëÇÏ´Â ¹æ¹ýµµ ÀÖ°í
basename ÇÁ·Î±×·¥À» »ç¿ëÇÒ ¼öµµ ÀÖ´Ù.
|
$ cat jc_core
#!/bin/sh
#
# jc_core: basenameÀ» ÀÌ¿ëÇÑ ¶Ç ´Ù¸¥ ¹æ¹ý
#
jcpath=¡¯/usr/local/bin¡¯
jcprogram=`basename $0`
echo Setup
the Environments and Flags
case ¡°$jcprogram¡±
in
jcc)
echo Excute jcc ;;
jdb)
echo Excute jdb ;;
*)
echo ¡°$jcpath/$jcprogram¡± ;;
esac
$ ln -s jc_core jcc
$ ln -s jc_core jdb
$ ln -s jc_core jzip
$ ./jcc
Setup the Environments and Flags
Excute jcc
$ ./jdb
Setup the Environments and Flags
Excute jdb
$ ./jzip
Setup the Environments and Flags
/usr/local/bin/jzip
|
°á·Ð
½ºÅ©¸³Æ®¸¦
ÀÛ¼ºÇÏ´Â ÀÏÀÌ ´Ù ³¡ÀÌ ³µ´Ù¸é ÀÌÁ¦ ¸¶Áö¸·À¸·Î ³²Àº °ÍÀº ½ºÅ©¸³Æ®ÀÇ À̸§À» Á¤ÇÏ´Â
°ÍÀÌ´Ù. ¾î¶² À̸§À» Áþ´øÁö »ó°üÀº ¾øÁö¸¸ ÇÑ °¡Áö ÁÖÀÇÇÒ °ÍÀº ÀÌ¹Ì ÀÖ´Â
ÇÁ·Î±×·¥ÀÇ À̸§À» »ç¿ëÇØ¼´Â ¾È µÈ´Ù´Â °ÍÀÌ´Ù. ¿ì¸®°¡ Á¤ÇÑ À̸§ÀÌ ÀÌ¹Ì Á¸ÀçÇÏ´Â
Áö´Â ´ÙÀ½°ú °°Àº ¹æ¹ýÀ¸·Î ã¾Æº¸¸é µÈ´Ù.
man
1 <½ºÅ©¸³Æ® À̸§>
which <½ºÅ©¸³Æ® À̸§>
whereis <½ºÅ©¸³Æ® À̸§>
alias <½ºÅ©¸³Æ® À̸§>
type <½ºÅ©¸³Æ® À̸§>
¸ðµç °¡´É¼ºÀ»
°Ë»çÇØ º¸°í ¾ø´Â À̸§À¸·Î Á¤ÇÑ´Ù.
ÀÌ·¸°Ô ½ºÅ©¸³Æ®ÀÇ
ÀÛ¼ºÀÌ ³¡ÀÌ ³µ´Ù. ÀÌÁ¦´Â ¹Ýº¹ÀûÀÎ ÀÏÀ» °£´ÜÈ÷ ó¸®ÇØÁÖ´Â ³ª¸§´ë·ÎÀÇ ½ºÅ©¸³Æ®´Â
ÀÛ¼ºÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ºÎÁ·ÇÑ ºÎºÐÀÌ ÀÖ±â´Â ÇÏÁö¸¸ ±×·± ºÎºÐµéÀº ¸¹Àº ½Ãµµ¸¦
ÅëÇØ¼ 䵿ÇÒ ¼ö ÀÖÀ» °ÍÀ̶ó »ý°¢ÇÑ´Ù. ¶ÇÇÑ ½© ½ºÅ©¸³Æ®¸¦ ÀÛ¼ºÇϱâ À§Çؼ´Â
»ç¿ëÇÏ´Â ½©¿¡ ´ëÇÑ ÀÌÇØµµ ÇÊ¿äÇÏ´Ù. ´ÙÀ½ ±â»ç¿¡¼´Â ÀÛ¼ºÇÑ ½ºÅ©¸³Æ®¸¦ µð¹ö±ëÇÏ´Â
¹æ¹ýÀ» ¾Ë¾Æº¸ÀÚ.
¡¤Âü¡¤°í¡¤ÀÚ¡¤·á¡¤
¡¤UNIX POWER
TOOLS, 2ed. Jerry Peek, Tim O¡¯Reilly, Mike Loukides.
O¡¯Reilly
¡¤bash ¸Å´º¾ó ÆäÀÌÁö
|