24Àå. º°Äª(Aliases)

bashÀÇ º°Äª(alias)Àº º»·¡, ±ä ¸í·É¾îµéÀ» Ä¡Áö ¾Ê±â À§ÇÑ Å°º¸µå ´ÜÃàŰ³ª ¾à¾îÀÏ »ÓÀÔ´Ï´Ù. ¿¹¸¦ µé¾î, ~/.bashrc ÆÄÀÏ¿¡ alias lm="ls -l | more"¶ó°í Àû¾îÁÖ¸é ¸í·É¾îÁÙ¿¡¼­ lmÀ̶ó°í Ä¥ ¶§¸¶´Ù ÀÚµ¿À¸·Î ls -l | more·Î ¹Ù²ò´Ï´Ù. ÀÌ·¸°Ô ÇÏ¸é ¸í·É¾î Çà¿¡¼­ ¾öû³­ ŸÀÌÇÎÀ» ÁÙÀÏ ¼ö ÀÖ°í ¾ÆÁÖ º¹ÀâÇÑ ¸í·É¾î³ª ¿É¼ÇÀÇ Á¶ÇÕµéÀ» ÀÏÀÏÀÌ ´Ù ±â¾ïÇϰí ÀÖÁö ¾Ê¾Æµµ µË´Ï´Ù. alias rm="rm -i"(Áö¿ï ¶§ ¹°¾îº¸±â ¸ðµå)¶ó°í ¼¼ÆÃÇØ ³õÀ¸¸é Áß¿äÇÑ ÆÄÀÏÀ» ½Ç¼ö·Î Áö¿ö¹ö¸®Áö ¾Ê°Ô Çϱ⠶§¹®¿¡ Å« »ç°í¸¦ ¸·¾Æ ÁÝ´Ï´Ù.

½ºÅ©¸³Æ®¿¡¼­´Â º°Äª(alias)ÀÌ Á¦ÇÑµÈ ¾²ÀÓ»õ¸¦ °®½À´Ï´Ù. º°Äª¿¡ ¸ÅÅ©·Î È®Àå°°Àº C Àü󸮱â(preprocessor)±â °°Àº ±â´ÉÀÌ ÀÖ¾ú´Ù¸é ¾ÆÁÖ ÁÁ¾ÒÀ»ÅÙµ¥, ºÒÇàÇϰԵµ Bash´Â º°Äª¿¡ ¼ÓÇÑ ÀÎÀÚµéÀ» È®ÀåÇÏÁö ¾Ê½À´Ï´Ù. [1] °Ô´Ù°¡, if/then¹®, ·çÇÁ, ÇÔ¼ö°°Àº "º¹ÇÕ¹®"(compound construct)¾È¿¡¼­´Â º°Äª ÀÚüÀÇ È®ÀåÀÌ µÇÁú ¾Ê½À´Ï´Ù. ¾Æ¸¶ °ÅÀÇ Ç×»ó ±×·²Å×Áö¸¸, º°ÄªÀ¸·Î ¹«¾ùÀ» ÇÏ·Á´ø °£¿¡ ÇÔ¼ö¿¡¼­ ±¸ÇöÇÏ´Â °ÍÀÌ ´õ È¿°úÀûÀÏ °ÍÀÔ´Ï´Ù.

¿¹ 24-1. ½ºÅ©¸³Æ®¿¡¼­ ¾²ÀÌ´Â º°Äª(alias)

#!/bin/bash
# ¿À·¡µÈ ½Ã½ºÅÛ¿¡¼­´Â #!/bin/bash2 ¶ó°í ÇØ¾ß µË´Ï´Ù.

shopt -s expand_aliases
# ÀÌ ¿É¼ÇÀ» ²À ½á¾ß º°ÄªÀ» È®Àå½Ãų ¼ö ÀÖ½À´Ï´Ù.


# ¸ÕÀú Àç¹Ì·Î Çϳª ÇØº¸ÁÒ.
alias Jesse_James='echo "\"Alias Jesse James\" was a 1959 comedy starring Bob Hope."'
Jesse_James

echo; echo; echo;

alias ll="ls -l"
# º°ÄªÀ» Á¤ÀÇÇÏ·Á¸é ÀÛÀºµû¿ÈÇ¥(')³ª Å«µû¿ÈÇ¥(") Áß Çϳª¸¦ ½á¾ß µË´Ï´Ù.

echo "º°ÄªÀÎ \"ll\" ÇØº¸±â:"
ll /usr/X11R6/bin/mk*   #* Àß µË´Ï´Ù.

echo

directory=/usr/X11R6/bin/
prefix=mk*  # ¿ÍÀϵå Ä«µå°¡ ¹®Á¦¸¦ ÀÏÀ¸Å°´ÂÁö ÇÑ ¹ø º¾½Ã´Ù.
echo "Variables \"directory\" + \"prefix\" = $directory$prefix"
echo

alias lll="ls -l $directory$prefix"

echo "º°ÄªÀÎ \"lll\" ÇØº¸±â:"
lll         # /usr/X11R6/bin ¿¡¼­ mk ·Î ½ÃÀÛÇÏ´Â ¸ðµç ÆÄÀϵéÀÇ ¸ðµç(long) Á¤º¸¸¦ º¸¿©ÁÝ´Ï´Ù.
# º°ÄªÀº ¿ÍÀϵå Ä«µå¸¦ Æ÷ÇÔÇÑ º¯¼öÀÇ ¿¬°áÀ» Àß Ã³¸®ÇÕ´Ï´Ù.




TRUE=1

echo

if [ TRUE ]
then
  alias rr="ls -l"
  echo "º°Äª \"rr\" À» if/then ¹® ¾È¿¡¼­ ÇØº¸±â:"
  rr /usr/X11R6/bin/mk*   #* ¿¡·¯ ¸Þ¼¼Áö°¡ ³ª¿É´Ï´Ù!
  # º°ÄªÀº º¹ÇÕ¹® ¾È¿¡¼­ È®ÀåµÇÁö ¾Ê½À´Ï´Ù.
  echo "ÇÏÁö¸¸, ÀÌ¹Ì È®ÀåµÈ º°ÄªÀº ÀνÄÇÕ´Ï´Ù:"
  ll /usr/X11R6/bin/mk*
fi  

echo

count=0
while [ $count -lt 3 ]
do
  alias rrr="ls -l"
  echo "º°Äª \"rrr\" À» \"while\" ·çÇÁ¾È¿¡¼­ ÇØº¸±â:"
  rrr /usr/X11R6/bin/mk*   #* ¿ª½Ã È®ÀåµÇÁö ¾Ê½À´Ï´Ù.
  let count+=1
done 

echo; echo

alias xyz="cat $1"   # º°Äª¿¡¼­ À§Ä¡ ¸Å°³º¯¼ö ½Ãµµ.
xyz                  # Bash ¹®¼­´Â ÀÌ·± ½Ãµµ¸¦ ÇÏÁö ¸»¶ó°í Á¦¾ÈÇϰí ÀÖ½À´Ï´Ù¸¸,
# ÀÌ ½ºÅ©¸³Æ®¿¡ ÆÄÀϸíÀ» Á༭ µ¹¸®¸é Á¦´ë·Î µÇ´Â°Íó·³ º¸ÀÔ´Ï´Ù.

exit 0

Âü°í: unalias ¸í·É¾î´Â ÀÌÀü¿¡ ¼¼ÆÃµÇ¾î ÀÖ´ø º°ÄªÀ» Áö¿öÁÝ´Ï´Ù.

¿¹ 24-2. unalias: º°ÄªÀ» ¼³Á¤, ÇØÁ¦Çϱâ

#!/bin/bash

shopt -s expand_aliases  # º°Äª È®ÀåÀ» Å´.

alias llm='ls -al | more'
llm

echo

unalias llm              # º°ÄªÀ» ÇØÁ¦.
llm
# 'llm'ÀÌ ´õ ÀÌ»ó ÀνĵÇÁö ¾Ê±â ¶§¹®¿¡ ¿¡·¯ ¸Þ¼¼Áö°¡ ³ª¿É´Ï´Ù.

exit 0
bash$ ./unalias.sh
total 6
drwxrwxr-x    2 bozo     bozo         3072 Feb  6 14:04 .
drwxr-xr-x   40 bozo     bozo         2048 Feb  6 14:04 ..
-rwxr-xr-x    1 bozo     bozo          199 Feb  6 14:04 unalias.sh

./unalias.sh: llm: command not found

ÁÖ¼®

[1]

ÇÏÁö¸¸ À§Ä¡ ¸Å°³º¯¼ö´Â È®ÀåÇÏ´Â °Íó·³ º¸ÀÔ´Ï´Ù.