BACKRUSH  À¯´Ð½º¸í·É  ´ÙÀ½  ÀÚ·á½Ç  Ascii Table   ¿ø°ÝÁ¢¼Ó  ´Þ·Â,½Ã°£   ÇÁ·Î¼¼½º   ½©
ÁöÇÏö³ë¼±   RFC¹®¼­   SUN FAQ   SUN FAQ1   C¸Þ´º¾ó   PHP¸Þ´º¾ó   ³Ê±¸¸®   ¾Æ½ºÅ°¿ùµå ¾ÆÀÌÇǼ­Ä¡

±Û¾´ÀÌ: ÀÌǪ if¹® Á¶È¸¼ö: 5277




½© ½ºÅ©¸³Æ®ÀÇ Ã¹¹ø° ¶óÀο¡´Â ´ëºÎºÐ

#!/bin/sh

¶ó´Â ¹®ÀåÀÌ Àִµ¥, ÀÌ´Â ¾î¶² ½©À» ÀÌ¿ëÇÏ¿© ÀÌ ÇÁ·Î±×·¥À» ½ÇÇà½Ãų °ÍÀÎÁö¸¦ ÁöÁ¤ÇÏ´Â °ÍÀÌ´Ù. Áï, ½ºÅ©¸³Æ®°¡ ½ÇÇàµÇ¸é /bin/sh ÇÁ·Î±×·¥ ÇÏ¿¡¼­ ½ÇÇàµÊÀ» ÀǹÌÇÑ´Ù.



º¯¼ö

±×³É º¯¼ö¸íÀ» ÀûÀ¸¸é µÈ´Ù. º¯¼öÀÇ Å¸ÀÔÀ̳ª ÇüÀ» ¸í½ÃÇÏÁö ¾Ê´Â´Ù.

º¯¼ö¿¡ °ªÀ» ÇÒ´çÇÏÁö ¾Ê¾Æµµ Ưº°ÇÑ ¹®Á¦´Â ¹ß»ýÇÏÁö ¾ÊÀ¸¸ç, NULL·Î ÃʱâÈ­ÇÏ°í ³ªÁß¿¡ °ªÀ» ÇÒ´çÇÏ·Á°í ÇÑ´Ù¸é ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù.

name=



º¯¼ö¿¡ °ªÀ» ÇÒ´çÇÒ ¶§´Â ¡®=¡¯ ±âÈ£¸¦ »ç¿ëÇϴµ¥ = »çÀÌ¿¡ °ø¹éÀ» ³ÖÀ¸¸é ¾ÈµÈ´Ù.

name=JUNGJH # ¸Â´Ù.

name = JUNGJH # Ʋ¸®´Ù.

¸¸ÀÏ ÀÔ·ÂÇÏ·Á´Â À̸§¿¡ °ø¹éÀÌ ÀÖ´Ù¸é ´ÙÀ½Ã³·³ ÇÑ´Ù.

name="JUNG J H"



¸¸ÀÏ Àμö·Î ÀԷµǴ °ªÀÌ ÀÖÀ» ¶§ À̸¦ º¯¼ö·Î ¹Þ´Â ¹æ¹ýÀº ¡®$¼ýÀÚ¡¯ ÀÌ´Ù. Áï, $1Àº ù¹ø° ÀμöÀÌ°í $2´Â µÎ¹ø° ÀμöÀÌ´Ù.



º¯¼öÀÇ ³»¿ëÀ» Ãâ·ÂÇÏ·Á¸é ¡®echo¡¯¸¦ »ç¿ëÇÑ´Ù. À̶§ º¯¼öÀÓÀ» ¾Ë¸®±â À§Çؼ­ $¸¦ ³Ö´Â´Ù.

echo $name



º¯¼ö¿¡ ¿ÍÀÏµå ¹®ÀÚ¸¦ ³Ö¾î¼­ »ç¿ëÇÒ ¼öµµ ÀÖ´Ù.

filename=*.sh

echo $filename # È®ÀåÀÚ°¡ sh·Î µÇ¾î ÀÖ´Â ÆÄÀϵéÀÇ ¸ñ·ÏÀÌ ³ª¿Â´Ù.



º¯¼ö¸¦ ÀÌ¿ëÇÏ¿© ½ºÆ®¸µÀÇ ÀϺθ¦ º¯°æÇÒ ¼öµµ ÀÖ´Ù. ¿¹¸¦ µé¾î optionÀ̶ó´Â º¯¼ö¿¡ ¡®l¡¯¸¦ ÀÔ·ÂÇÑ ÈÄ ls –¡°$option¡± À» »ç¿ëÇϸé ls –l °ú µ¿ÀÏÇÑ ¹®ÀåÀÌ µÈ´Ù.

<¿¹. ShellTest2.sh>



½ºÅ©¸³Æ® ÆÄÀÏ ³»ºÎ¿¡¼­ °³¹ßÀÚ°¡ unset Å°¿öµå·Î º¯¼ö¸¦ Á¦°ÅÇÒ ¼ö ÀÖ´Ù.

name="Jung JH"

unset name

newname=$name # newname= °ú °°´Ù.



½© ½ºÅ©¸³Æ®¿¡¼­µµ »ó¼ö¸¦ ¸¸µé ¼ö ÀÖ´Ù. À̶§ »ç¿ëµÇ´Â Å°¿öµå´Â ¡®readonly¡¯ÀÌ´Ù.

readonly¸¸ ¾²¸é ÀбâÀü¿ëÀ¸·Î µÈ »ó¼öµéÀ» ¸ðµÎ È­¸é¿¡ Ç¥½ÃÇÑ´Ù.

Name="Jung JH"

Readonly name # ÀÌ Èķδ °ªÀ» ¹Ù²Ü ¼ö ¾ø´Ù.





½© ½ºÅ©¸³Æ®¿¡¼­´Â ½© Àüü°¡ »ç¿ëÇϴ ȯ°æº¯¼öµµ ÀÏ¹Ý º¯¼ö¿Í ¶È °°Àº ¹æ¹ýÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù.



º¯¼ö¿¡ °ªÀ» ÇÒ´çÇÒ ¶§ ÀÔ·ÂÁÙ¿¡¼­ ÀԷ¹ÞÀº ³»¿ëÀ» ÇÒ´çÇÏ´Â ¹æ¹ýÀÌ ÀÖ´Ù. Áï, ½ºÅ©¸³Æ®°¡ ½ÇÇàµÇ´Â Áß°£¿¡ º¯¼ö¿¡ ÇÒ´çÇÒ ³»¿ëÀ» »ç¿ëÀڷκÎÅÍ ÀԷ¹ÞÀº ÈÄ ±× ³»¿ëÀ» ÇÒ´çÇÏ´Â °ÍÀÌ´Ù.

À̶§ »ç¿ëÇÏ´Â Å°¿öµå°¡ ¡®read¡¯Àε¥ ÀÌ Å°¿öµå¿Í º¯¼ö¸¦ ÇÔ²² ÀûÀ¸¸é ±× ¶óÀÎÀÌ ½ÇÇàµÉ ¶§ »ç¿ëÀڷκÎÅÍ ÀÔ·ÂÇÒ °ÍÀ» ¿äûÇÏ°Ô µÈ´Ù.

<Grep.sh>

#!/bin/sh

echo "grep¿¡ »ç¿ëµÉ ¿É¼Ç ÀÔ·Â, -l ¶Ç´Â -s¸¦ ÀÔ·ÂÇØÁÖ¼¼¿ä."

read option1

echo "°Ë»öÇÏ°íÀÚ ÇÏ´Â ¹®ÀåÀ» ÀÔ·ÂÇØÁÖ¼¼¿ä"

read option2

grep $option1 $option2 *



½©¿¡¼­ »ç¿ëµÇ´Â ƯÁ¤ Å°¿öµå´Â ´ÙÀ½°ú °°´Ù.

$# - ¸í·ÉÀÔ·Â ¶óÀο¡¼­ ÀÔ·ÂµÈ ÀμöÀÇ °³¼ö¸¦ °¡Áö°í ÀÖ´Ù.

$* - ¸í·ÉÀÔ·Â ¶óÀο¡¼­ ÀÔ·ÂµÈ ÀüüÀÇ ³»¿ëÀ» Æ÷ÇÔÇÑ´Ù. Áï, $1 ~ $nÀ» ¸ðµÎ ÇÕÄ£°Í°ú °°´Ù.

$$ - ½© ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÇ¸é¼­ »ç¿ëµÈ ÇÁ·Î¼¼½ºÀÇ ID °ªÀ» °¡Áø´Ù.

$! - ½© ÇÁ·Î±×·¥ÀÌ ½ÇÇà½ÃŲ ¹é±×¶ó¿îµå ÇÁ·Î¼¼½ºÀÇ ID °ªÀ» °¡Áø´Ù.

<¿¹. shellTest.sh>

À§ÀÇ Å°¿öµå¸¦ »ç¿ëÇÑ ´Ù¾çÇÑ ÀÀ¿ëÀ» ÇÑ´Ù.



¡®set¡¯ ¸í·É¾î¸¦ ÀÌ¿ëÇϸé ÇöÀç ½©¿¡¼­ »ç¿ëµÇ°í ÀÖ´Â º¯¼öµéÀÇ ¸®½ºÆ®¸¦ È®ÀÎÇÒ ¼ö ÀÖ´Ù.

<¿¹. shellTest4.sh>

½©ÀÇ È¯°æº¯¼ö¸¦ ¸î°¡Áö È®ÀÎÇÑ´Ù.



½©¿¡¼­ º¯¼ö¸¦ »ç¿ëÇÒ ¶§ º¯¼ö¿¡ °ªÀ» ÇÒ´çµÈ °æ¿ì¿¡´Â º¯¼ö°¡ °¡Áø °ªÀ» »ç¿ëÇÏ°í, ±×·¸Áö ¾ÊÀ¸¸é µðÆúÆ®ÀÇ ´Ù¸¥°ªÀ» È°¿ëÇÏ´Â ¹æ¹ýÀÌ ÀÖ´Ù.

´õ ³ª¾Æ°¡ ÁöÁ¤ÇÑ ³»¿ëÀ» °ªÀÌ ÇÒ´çµÇÁö ¾ÊÀº º¯¼ö¼Ó¿¡ ÇÒ´çÇÏ´Â ¹æ¹ýµµ ÀÖ´Ù.

${X:-Y} # X¿¡ °ªÀÌ ÀÖÀ¸¸é ±×´ë·Î, ±×·¸Áö ¾ÊÀ¸¸é Y¸¦ »ç¿ë, X°ª º¯µ¿¾øÀ½

${X:=Y} # Y°¡ »ç¿ëµÇ°í ³­ ÈÄ X¿¡ Y°ª ÇÒ´ç

${X:?¿¡·¯¸Þ½ÃÁö} # X¿¡ °ªÀÌ ¾øÀ¸¸é ¿¡·¯¸Þ½ÃÁö¿Í ÇÔ²² Á¾·á

<¿¹. shellTest4.sh>

À§ÀÇ ¿¹¸¦ È°¿ëÇÑ´Ù.



Á¦¾î¹®(Á¶°Ç¹®)

½©¿¡¼­ ¸í·É¾îµéÀ» ¼øÂ÷ÀûÀ¸·Î ½ÇÇàÇÒ ¶§ ¡®||¡¯ ¿¬»êÀÚ¿Í ¡®&&¡¯ ¿¬»êÀÚ¸¦ ÀÌ¿ëÇÏ¿© ¿¬»êÀÚ ¹Ù·Î µÚ¿¡ À§Ä¡ÇÑ ¸í·É¾î°¡ Á¶°Ç¿¡ µû¶ó ½ÇÇàµÇµµ·Ï ¸¸µé ¼ö ÀÖ´Ù.

'||¡¯ ¿¬»êÀÚ´Â ¾ÕÀÇ ¸í·É¾î°¡ ½ÇÆÐÇßÀ» ¶§¸¸ µÚ¿¡ À§Ä¡ÇÑ ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÇµµ·Ï ÇÑ´Ù.

¡®&&¡¯ ¿¬»êÀÚ´Â ¹Ý´ë·Î ¾ÕÀÇ ¸í·É¾î°¡ ¼º°øÀûÀ¸·Î ¼öÇàµÇ¾úÀ» ¶§¸¸ µÚÀÇ ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÈ´Ù.



´ÙÀ½Àº ¸í·É¾î ½ÇÇàÀÌ ½ÇÆÐÇßÀ» ¶§ ÀÌ ³»¿ëÀ» ·Î±×·Î ³²±â´Â ÀÛ¾÷ÀÌ´Ù.

Run Command1 || echo ù¹ø° ¸í·É ½ÇÇà ½ÇÆÐ >> log.txt

Run Command2 || echo µÎ¹ø° ¸í·É ½ÇÇà ½ÇÆÐ >> log.txt

¶ÇÇÑ ´ÙÀ½Àº ½ÇÆа¡ ¿¹»óµÇ´Â ¸í·É¿¡ ´ëÇÑ º¸¿Ï ½ÇÇàÀÌ´Ù.

ShellTest5.sh || chmod 755 ShellTest5.sh && ShellTest5.sh



If-else ±¸¹®ÀÇ Çü½ÄÀº ´ÙÀ½°ú °°´Ù.

if [ conditons ]

then

½ÇÇàÇÏ°íÀÚ ÇÏ´Â ¹®Àå

fi



#########

if [ conditons ]

then

Á¶°Ç¸¸Á·½Ã ½ÇÇàÇÏ°íÀÚ ÇÏ´Â ¹®Àå

else

Á¶°Ç ºÒ¸¸Á·½Ã ½ÇÇàÇÏ°íÀÚ ÇÏ´Â ¹®Àå

fi



##########

if [ conditons ]

then

Á¶°Ç¸¸Á·½Ã ½ÇÇàÇÏ°íÀÚ ÇÏ´Â ¹®Àå

elif [ conditons ]

µÎ¹ø° Á¶°Ç ¸¸Á·½Ã ½ÇÇà ¹®Àå

else

Á¶°Ç ºÒ¸¸Á·½Ã ½ÇÇàÇÏ°íÀÚ ÇÏ´Â ¹®Àå

fi



<¿¹. IfTest1.sh>



if Á¶°Ç¹®¿¡¼­ »ç¿ëµÇ´Â ¿¬»êÀڵ鿡´Â ´ÙÀ½°ú °°Àº °ÍµéÀÌ ÀÖ´Ù.



l ¹®ÀÚ¿­Ã¼Å©

[ stringName ] - ¹®ÀÚ¿­ÀÌ ³Î(NULL)ÀÎÁö üũ, NullÀÌ ¾Æ´Ï¸é Âü

[ -n stringName ] - ¹®ÀÚ¿­ÀÇ »çÀÌÁî°¡ 0 ÀÌ»óÀÎÁö üũ, 0 ÀÌ»óÀ̸é Âü

[ -z stringName ] - ¹®ÀÚ¿­ÀÇ »çÀÌÁî°¡ 0 ÀÎÁö üũ, 0À̸é Âü

[ stringNameA = stringNameB ] - A¹®ÀÚ¿­°ú B¹®ÀÚ¿­ÀÌ °°ÀºÁö üũ, °°À¸¸é Âü

[ stringNameA != stringNameB ] - A¹®ÀÚ¿­°ú B¹®ÀÚ¿­ÀÌ ´Ù¸¥Áö üũ, ´Ù¸£¸é Âü



l ¼ýÀÚ ´ë¼Ò °ü°è üũ

[ intA -ge 100 ] - ¼ýÀÚ A°¡ 100º¸´Ù Å©°Å³ª °°ÀºÁö üũ, 100 ÀÌ»óÀ̸é Âü

[ intA -gt 100 ] - ¼ýÀÚ A°¡ 100º¸´Ù Å«Áö üũ, 100ÀÌ ³ÑÀ¸¸é Âü

[ intA -le 100 ] - ¼ýÀÚ A°¡ 100º¸´Ù À۰ųª °°ÀºÁö üũ, 100 ÀÌÇÏÀ̸é Âü

[ intA -lt 100 ] - ¼ýÀÚ A°¡ 100º¸ÀÚ ÀÛÀºÁö üũ, 100 ¹Ì¸¸À̸é Âü



l ÆÄÀÏ Ã¼Å©

[ -r filename ] - ÇØ´ç ÆÄÀÏÀÌ Àб⠰¡´ÉÇÑÁö üũ

[ -w filename ] - ÇØ´ç ÆÄÀÏÀÌ ¾²±â °¡´ÉÇÑÁö üũ

[ -x filename ] - ÇØ´ç ÆÄÀÏÀÌ ½ÇÇà °¡´ÉÇÑÁö üũ

[ -s filename ] - ÇØ´ç ÆÄÀÏÀÇ »çÀÌÁî°¡ Á¦·Î ÀÌ»óÀÎÁö üũ

[ -d filename ] - ÇØ´ç ÆÄÀÏÀÌ µð·ºÅ丮 ÆÄÀÏÀÎÁö üũ

[ -f filename ] - ÇØ´ç ÆÄÀÏÀÌ º¸Åë ÆÄÀÏÀÎÁö üũ

[ -h filename ] - ÇØ´ç ÆÄÀÏÀÌ ¸µÅ© ÆÄÀÏÀÎÁö üũ



l Á¶°Ç¹®ÀÇ °áÇÕ

[ Á¶°Ç¹®A -a Á¶°Ç¹®B ] - Á¶°Ç¹® A¿Í B°¡ ¸ðµÎ ÂüÀÎÁö üũ, -a´Â AND

[ Á¶°Ç¹®A -o Á¶°Ç¹®B ] - Á¶°Ç¹® A¿Í BÁß ÂüÀÌ Çϳª¶óµµ ÀÖ´ÂÁö üũ, -o´Â OR



<¿¹. IfTest2.sh>



case¹®µµ Á¦°øÀ» Çϴµ¥ Çü½ÄÀº ´ÙÀ½°ú °°´Ù.

case $º¯¼ö¸í in

¹®Àå1)

ù¹ø° ¸í·É¾î;;

¹®Àå2)

µÎ¹ø° ¸í·É¾î;;

¹®Àå3)

¼¼¹ø° ¸í·É¾î;;

*)

Default ¸í·É¾î;;

esac



<¿¹. caseTest.sh>





Á¦¾î¹®(¹Ýº¹¹®)

while¹®ÀÇ Çü½ÄÀº ´ÙÀ½°ú °°´Ù.

while [ Á¶°Ç ]

do

¸í·É¾î ±¸¹®

done



<¿¹. whileTest.sh>

#!/bin/sh

while [ $# -gt 0 ]

echo "< $1 ¸í·É ½ÇÇà > "

$1

Shift

done



À§ÀÇ ¿¹Á¦¿¡¼­ shift ¸í·É¾î¸¦ »ç¿ëÇϴµ¥. Shift´Â Àμö·Î µé¾î¿Â ³»¿ëÀ» Çϳª¾¿ ¿Å°Ü°¡´Â ±â´ÉÀ» ÇÑ´Ù. Áï, shift°¡ Çѹø ½ÇÇàµÇ¸é $1Àº $2ÀÌ µÇ°í $2´Â $3ÀÌ µÈ´Ù.(???)



until ±¸¹®°ú ºñ±³Çغ¸¶ó..

#!/bin/sh

until [ $# -le 0 ]

echo "< $1 ¸í·É ½ÇÇà > "

$1

Shift

done



for ±¸¹®ÀÇ Çü½ÄÀº ´ÙÀ½°ú °°´Ù.

for º¯¼ö¸í in value1 value2 ...

do

¹Ýº¹ ½ÇÇà ¹®Àå

done



while/until ¿¡¼­ »ç¿ëÇÑ ¿¹Á¦¸¦ for·Î º¯°æÇÏ¸é ´ÙÀ½°ú °°´Ù.

#!/bin/sh

for variable in $* # $* : Àμö·Î µé¾î¿Â ¸ðµç ¹®ÀÚ¿­

do

echo ¡°< $variable ¸í·É ½ÇÇà>¡±

$variable

done



for Å°¿öµå µÚ¿¡ º¯¼ö¸í(variable)ÀÌ ¿À°í in Å°¿öµå µÚ¿¡ °ªµéÀÌ ³ª¿­µÈ´Ù. ÀÌ°ÍÀº in µÚ¿¡ ÀÖ´Â °ªÀÌ Çϳª¾¿ variable¿¡ ÇÒ´çÀÌ µÇ¸é¼­ °ªÀÇ ÇÒ´çÀÌ ³¡³¯¶§±îÁö do~done¸¦ ¹Ýº¹ÇÑ´Ù.

<¿¹. breakContinue.sh>



<¿¹. runCmd>

¿©·¯ °³ÀÇ ½© ¸í·É¾î¸¦ ÇѲ¨¹ø¿¡ ½ÇÇàÇϵµ·Ï ¸¸µé¾î ÁÖ´Â ¿¹Á¦

½© ¸í·É¾î°¡ ¿É¼ÇÀÌ ÀÖ´ÂÁö ¿©ºÎ¸¦ üũÇÏ°í, ¿É¼ÇÀÌ ÀÖÀ¸¸é ¿É¼Ç°úÇÔ²² ¸í·É¾î¸¦ ½ÇÇàÇÏ°í ¿É¼ÇÀÌ ¾øÀ¸¸é ¸í·É¾î¸¸ ½ÇÇàÇϴµ¥, À̸¦ À§ÇØ while¹®°ú ´ÙÁß if¹®, case¹®À» »ç¿ëÇÑ´Ù.





ÇÔ¼ö ÀÛ¼º

ÇÔ¼ö¸¦ »ç¿ëÇÏ·Á¸é ½ºÅ©¸³Æ®ÀÇ ½ÃÀۺο¡ Á¤ÀÇ°¡ µÇ¾î ÀÖ¾î¾ß ÇÑ´Ù.

ÇÔ¼öÀÇ Çü½ÄÀº ´ÙÀ½°ú °°´Ù.

ÇÔ¼ö¸í()

{

ÇÔ¼ö ³»¿ë

}



ÇÔ¼ö È£ÃâÀº ÀÎÀÚ°¡ ¾ø´Â ÇÔ¼ö´Â ÇÔ¼ö¸í¸¸ È£ÃâÇÏ¸é µÇ°í, ÀÎÀÚ°¡ ÀÖ´Â ÇÔ¼ö´Â ÇÔ¼ö¸í µÚ¿¡ ÀÎÀÚ¸¦ ³ª¿­ÇØÁÖ¸é µÈ´Ù.( °ýÈ£´Â ¾²Áö ¾Ê´Â´Ù.)

ÇÔ¼ö ³»ºÎ¿¡¼­ ³Ñ°Ü¹ÞÀº ÀÎÀÚ¸¦ ¾²´Â ¹æ¹ýÀº ½© ÇÁ·Î±×·¥ÀÌ ÀÎÀÚ¸¦ ¾²´Â ¹æ¹ý°ú °°´Ù.($1, $2, ¡¦)

[Ãâó] [Á¤¸®]½© ½ºÅ©¸³Æ® ÇÁ·Î±×·¡¹Ö1. ¹®¹ý|ÀÛ¼ºÀÚ Åõ´õ¸®





°ü·Ã±Û : ¾øÀ½ ±Û¾´½Ã°£ : 2017/09/22 10:33 from 192.168.0.1

  111 ¸ñ·Ïº¸±â »õ±Û ¾²±â Áö¿ì±â ÀÀ´ä±Û ¾²±â ±Û ¼öÁ¤ trap È°¿ë  
BACKRUSH  À¯´Ð½º¸í·É  ´ÙÀ½  ÀÚ·á½Ç  Ascii Table   ¿ø°ÝÁ¢¼Ó  ´Þ·Â,½Ã°£   ÇÁ·Î¼¼½º   ½©
ÁöÇÏö³ë¼±   RFC¹®¼­   SUN FAQ   SUN FAQ1   C¸Þ´º¾ó   PHP¸Þ´º¾ó   ³Ê±¸¸®   ¾Æ½ºÅ°¿ùµå ¾ÆÀÌÇǼ­Ä¡