¿ø¹®: http://www.linuxnewbie.org/nhf/intel/programming/bash_cheat.html
ÀúÀÚ: ph34r
³¯Â¥:?
Á¦¸ñ: ÇÑ ´«¿¡ º¸´Â Bash ÇÁ·Î±×·¡¹Ö
½© ½ºÅ©¸³Æ®¸¦ ÀÛ¼ºÇÏ·Á´Â ÇÁ·Î±×·¡¸Ó¸¦ À§ÇÑ bash ÇÁ·Î±×·¡¹Ö ¿ä¾àÀÌ´Ù. ÀÌ ±ÛÀÇ ¸ñÀûÀº ÇÁ·Î±×·¡¹ÖÀ» °¡¸£Ä¡´Â µ¥¿¡ ÀÖÁö ¾Ê´Ù. ÀÌ¹Ì ÇϳªÀÇ ÇÁ·Î±×·¡¹Ö ¾ð¾î¸¦ ¾Ë°í ÀÖÀ¸¸é¼ bash ½ºÅ©¸³ÆÃÀ» ¹è¿ì·Á°í ÇÏ´Â »ç¶÷µéÀ» À§ÇÑ °ÍÀÌ´Ù.
¸ðµç bash ½ºÅ©¸³Æ®´Â ¹Ýµå½Ã o/s¿¡°Ô ÀÎÅÍÇÁ¸®ÅÍ·Î ¹«¾ùÀ» ¾µ °ÍÀÌÁö ¾Ë·Á¾ß ÇÑ´Ù. ¸ðµç ½ºÅ©¸³Æ®ÀÇ Ã¹¹ø°
¶óÀÎÀº ´ÙÀ½°ú °°¾Æ¾ß ÇÑ´Ù:
#!/bin/bash
´ÙÀ½ ¸í·ÉÀ¸·Îbash ½ºÅ©¸³Æ®¸¦ ½ÇÇà °¡´ÉÇÏ°Ô ¸¸µé¾î¾ß ÇÑ´Ù.
chmod +x filename
º¯¼ö¸¦ ¸¸µé¾î °ªÀ» ´ëÀÔÇÑ´Ù. º¯¼ö¿¡´Â µ¥ÀÌÅÍ Å¸ÀÔÀÌ ¾ø´Ù(´Ù¸¥ ¾ð¾î¿¡¼Ã³·³ º¯¼öÀÇ Å¸ÀÔÀ» Á¤ÀÇÇÏÁö ¾Ê°íµµ
º¯¼öÀÇ °ªÀ¸·Î ¹®ÀÚ¿, ¼ýÀÚ µîÀ» °¡Áø´Ù).
varname=value
º¯¼ö °ª¿¡ Á¢±ÙÇÒ ¶§´Â º¯¼ö À̸§ ¾Õ¿¡ $¸¦ ºÙÀδÙ
echo $varname
¸í·É ¶óÀο¡¼ ÀÎÀڷμ ³Ñ°ÜÁø °ªÀº $#¸¦ ÅëÇØ Á¢±ÙÇÒ ¼ö ÀÖ´Ù. ¿©±â¼ #´Â ³Ñ°ÜÁø °ªµéÀÇ ¹è¿ Áß ±× °ªÀÇ
À妽ºÀÌ´Ù. ÀÌ ¹è¿Àº 1ºÎÅÍ ½ÃÀÛÇÑ´Ù.
command var1 var2 var3 .... varX
$1Àº var1ÀÌ ¹«¾ùÀ̵çÁö ±× °ªÀ» ³ªÅ¸³»¸ç, $2´Â var2ÀÇ °ªÀ»
³ªÅ¸³½´Ù. ³ª¸ÓÁöµµ ¸¶Âù°¡ÁöÀÌ´Ù.
³»ºÎ¿¡ Á¤ÀÇµÈ º¯¼öµé:
º¯¼ö |
¿ëµµ |
$1-$N |
¸í·É ¶óÀÎÀ¸·ÎºÎÅÍ
½© ÇÁ·Î±×·¥¿¡
³Ñ°ÜÁø ÀÎÀÚ(º¯¼ö)¸¦ ÀúÀåÇÑ´Ù. |
$? |
¸¶Áö¸· ¸í·ÉÀÌ
½ÇÇàµÇ¾úÀ» ¶§ÀÇ
Å»Ãâ °ªÀ»
ÀúÀåÇÑ´Ù. |
$0 |
ÀÔ·ÂµÈ ¸í·ÉÀÇ
ù¹ø° ´Ü¾î(½© ÇÁ·Î±×·¥ÀÇ
À̸§)¸¦ ÀúÀåÇÑ´Ù. |
$* |
¸í·É ¶óÀο¡¼
ÀÔ·ÂµÈ ¸ðµç
ÀÎÀÚµé(($1 $2 ¡¦)À» ÀúÀåÇÑ´Ù. |
"$@" |
¸í·É ¶óÀο¡¼
ÀÔ·ÂµÈ ¸ðµç
ÀÎÀÚµéÀ» °³º°ÀûÀ¸·Î
µû¿ÈÇ¥¸¦ ¾º¿î
ÇüÅÂ("$1"
"$2" ...)·Î ÀúÀåÇÑ´Ù. |
º¸ÅëÀÇ µû¿ÈÇ¥("like these")´Â ½©ÀÌ °ø¹é ¹®ÀÚ¸¦ ¹«½ÃÇϵµ·Ï Çؼ ³Ñ°ÜÁø ÇϳªÀÇ ÀÎÀÚ ¶Ç´Â »ç¿ëÇÒ ¹®ÀÚ¿·Î »ý°¢ÇÏ°Ô ÇÑ´Ù. ÇÏÁö¸¸ µû¿ÈÇ¥ ¾ÈÀÇ Æ¯¼ö ¹®ÀÚ´Â ÀνÄÇÑ´Ù.
ÀÛÀº µû¿ÈÇ¥('like this')´Â ¾î¶² ¹®ÀÚ¿ÀÌ ³Ñ°ÜÁöµç °£¿¡ ½©ÀÌ ¸ðµç Ư¼ö ¹®ÀÚ¸¦ ¹«½ÃÇؼ Çؼ®Çϵµ·Ï ÇÑ´Ù.
¿ª µû¿ÈÇ¥(`command`)´Â ´Ù¸¥ ±â´ÉÀ» ÇÑ´Ù. ÇÑ ¸í·ÉÀÇ °á°ú¸¦ ´Ù¸¥ ¸í·É¿¡¼ »ç¿ëÇÏ°í ½ÍÀ» ¶§ ¿ª µû¿ÈÇ¥¸¦ »ç¿ëÇÑ´Ù. ¿¹¸¦ µé¾î, º¯¼ö contents ÀÇ °ªÀ» ÇöÀç µð·ºÅ丮 ¾È¿¡ ÀÖ´Â ÆÄÀÏÀÇ ¸®½ºÆ®¿Í °°°Ô ÇÏ°í ½Í´Ù¸é ´ÙÀ½°ú °°Àº ¸í·ÉÀ» ÀÔ·ÂÇÏ¸é µÈ´Ù: contents=`ls`. ls ÇÁ·Î±×·¥ÀÇ °á°ú°¡ º¯¼ö contents¿¡ µé¾î °£´Ù.
·çÇÁ¿¡ÀÇ ÀÔÀå/Å»Ãâ Á¶°ÇÀ» üũÇÏ´Â if-then ¹®Àå°ú °°Àº Á¶°Ç ¿¬»ê½ÄÀÇ °è»ê¿¡´Â test¶ó ºÒ¸®´Â ¸í·ÉÀÌ »ç¿ëµÈ´Ù.
test expression
¶Ç´Â
[ expression ]
¼öÄ¡ ºñ±³ |
||
int1 -eq int2 |
int1ÀÌ int2¿Í °°´Ù¸é True¸¦ ¸®ÅÏÇÑ´Ù. |
|
int1 -ge int2 |
int1ÀÌ int2º¸´Ù Å©°Å³ª °°À¸¸é True¸¦ ¸®ÅÏÇÑ´Ù. |
|
int1 -gt int2 |
int1ÀÌ int2º¸´Ù Å©¸é True¸¦ ¸®ÅÏÇÑ´Ù. |
|
int1 -le int2 |
int1ÀÌ int2º¸´Ù À۰ųª °°À¸¸é True¸¦ ¸®ÅÏÇÑ´Ù. |
|
int1 -lt int2 |
int1ÀÌ int2º¸´Ù ÀÛÀ¸¸é True¸¦ ¸®ÅÏÇÑ´Ù. |
|
int1 -ne int2 |
int1ÀÌ int2°ú ´Ù¸£¸é True¸¦ ¸®ÅÏÇÑ´Ù. |
¹®ÀÚ¿ ºñ±³ |
||
str1 = str2 |
str1°ú str2°¡ ÀÏÄ¡Çϸé True¸¦ ¸®ÅÏÇÑ´Ù. |
|
str1 != str2 |
str1°ú str2°¡ ´Ù¸£¸é True¸¦ ¸®ÅÏÇÑ´Ù. |
|
str |
strÀÌ nullÀÌ ¾Æ´Ï¸é True¸¦ ¸®ÅÏÇÑ´Ù. |
|
-n str |
strÀÇ
±æÀÌ°¡ 0º¸´Ù Å©¸é True¸¦ ¸®ÅÏÇÑ´Ù. |
|
-z str |
strÀÇ
±æÀÌ°¡ 0°ú °°À¸¸é True¸¦ ¸®ÅÏÇÑ´Ù.(±æÀÌ°¡ 0ÀÎ °ÍÀº null°ú ´Ù¸£´Ù) |
ÆÄÀÏ ºñ±³ |
||
-d filename |
ÆÄÀÏ filenameÀÌ µð·ºÅ丮¸é True¸¦ ¸®ÅÏÇÑ´Ù. |
|
-f filename |
ÆÄÀÏ filenameÀÌ ÀϹÝÀûÀÎ ÆÄÀÏÀ̸é True¸¦ ¸®ÅÏÇÑ´Ù. |
|
-r filename |
ÆÄÀÏ filenameÀÌ ÇÁ·Î¼¼½º¿¡ ÀÇÇØ ÀÐÇôÁø´Ù¸é True¸¦ ¸®ÅÏÇÑ´Ù. |
|
-s filename |
ÆÄÀÏ filenameÀÇ ±æÀÌ°¡ 0ÀÌ ¾Æ´Ï¸é True¸¦ ¸®ÅÏÇÑ´Ù. |
|
-w filename |
ÆÄÀÏ filenameÀÌ ÇÁ·Î¼¼½º¿¡ ÀÇÇØ ¾²¿©Áú ¼ö ÀÖ´Ù¸é True¸¦ ¸®ÅÏÇÑ´Ù. |
|
-x filename |
ÆÄÀÏ filenameÀÌ ¼öÇà °¡´ÉÇÏ´Ù¸é True¸¦ ¸®ÅÏÇÑ´Ù. |
Ç¥Çö½Ä ºñ±³ |
||
!expression |
expressionÀÌ true°¡ ¾Æ´Ï¸é true¸¦ ¸®ÅÏÇÑ´Ù. |
|
expr1 -a expr2 |
expr1°ú expr2°¡ trueÀ̸é true¸¦ ¸®ÅÏÇÑ´Ù. ( && , and ) |
|
expr1 -o expr2 |
expr1À̳ª expr2 Áß Àû¾îµµ Çϳª°¡ trueÀ̸é true¸¦ ¸®ÅÏÇÑ´Ù. ( ||, or ) |
If...then
if [ expression ]
then
commands
fi
If..then...else
if [ expression ]
then
commands
else
commands
fi
If..then...else
If...else
if [ expression ]
then
commands
elif [ expression2 ]
then
commands
else
commands
fi
Case select
case string1 in
str1)
commands;;
str2)
commands;;
*)
commands;;
esac
string1Àºstr1, str2¿Í ºñ±³µÈ´Ù. ¸¸ÀÏ ÀÌ Áß Çϳª°¡ string1°ú ÀÏÄ¡ÇÑ´Ù¸é, ÀÌÁß ¼¼¹ÌÄÝ·ÐÀÌ ³ª¿Ã ¶§±îÁö commands°¡ ½ÇÇàµÈ´Ù. ¸¸ÀÏ ¾î´À °Íµµ string1°ú ÀÏÄ¡ÇÏÁö ¾Ê´Â´Ù¸é, *¿¡ ÇØ´çÇÏ´Â commands°¡ ½ÇÇàµÈ´Ù. ÀÌ°ÍÀº µðÆúÆ® °æ¿ì·Î, *°¡ ¸ðµç ¹®ÀÚ¿¿¡ ÇØ´çÇϱ⠶§¹®ÀÌ´Ù.
for var1 in list
do
commands
done
ÀÌ°ÍÀº list ¾ÈÀÇ °¢ Ç׸ñ¿¡ ´ëÇØ Çѹø¾¿ ½ÇÇàµÈ´Ù. ÀÌ list´Â °ø¹é ¹®ÀÚ·Î ±¸ºÐµÈ ¿©·¯ °³ÀÇ ´Ü¾î¸¦ ´ã°í ÀÖ´Â º¯¼ö(ls³ª cat ¸í·ÉÀÇ Ãâ·Â°ú °°Àº)ÀÏ ¼ö ÀÖ´Ù. ¶Ç´Â ¹®Àå¿¡ Á÷Á¢ ÀÔ·ÂµÈ °ªµéÀÇ ¸®½ºÆ®ÀÏ ¼öµµ ÀÖ´Ù. ·çÇÁ¸¦ µ¹ ¶§¸¶´Ù, º¯¼ö var1¿¡´Â ¸®½ºÆ®ÀÇ Ç׸ñ Áß ÇöÀç Ç׸ñÀÌ ´ëÀԵǴµ¥ ¸¶Áö¸· Ç׸ñ¿¡ À̸¦ ¶§±îÁö °è¼Ó ¹Ýº¹µÈ´Ù.
while [ expression ]
do
commands
done
until [ expression ]
do
commands
done
ÇÔ¼ö ¸¸µå´Â ¹ý:
fname(){
commands
}
ÇÔ¼ö¸¦ ºÎ¸¦ ¶© ´ÙÀ½ÀÇ ¹®¹ýÀ» »ç¿ëÇÑ´Ù: fname
ÀÎÀÚ¸¦ ¹Þ¾ÆµéÀÌ´Â ÇÔ¼ö ¸¸µé±â:
fname2 (arg1,arg2...argN){
commands
}
ÀÎÀÚ ÀÖ´Â ÇÔ¼ö ºÎ¸£´Â ¹ý: fname2
arg1 arg2 ... argN