°Ô½Ã¹° 1,358°Ç
   
stderr redirection (Ç¥ÁØ¿¡·¯Ãâ·Â) ÀçÁöÁ¤(>&, 2>)
±Û¾´ÀÌ : ÃÖ°í°ü¸®ÀÚ ³¯Â¥ : 2010-10-06 (¼ö) 09:42 Á¶È¸ : 20520
±ÛÁÖ¼Ò :
                                
Ãâó : http://revoman.tistory.com/entry/stderr-redirection

Ç¥ÁØ ¿¡·¯ Ãâ·Â(stderr) ÀçÁöÁ¤(>&, 2>)

 

Ç¥ÁØ¿¡·¯(stderr) ÀçÁöÁ¤

À¯´Ð½º ½©¿¡¼­´Â Ç¥ÁØ ÀÔ·Â(stdin), Ç¥ÁØ Ãâ·Â(stdout), Ç¥ÁØ ¿¡·¯ Ãâ·Â(stderr)·Î ÀÌ¹Ì Á¤ÇØÁø ÆÄÀÏÀ̳ª ÀåÄ¡·Î ÁöÁ¤µÇ¾î ÀÖ´Ù. À¯´Ð½º ½©¿¡¼­ Ç¥ÁØÀ¸·Î ÁöÁ¤µÈ ¿¡·¯Ãâ·Â(/dev/null)¸¦ ´Ù¸¥ ÆÄÀÏÀ̳ª ÀåÄ¡·Î ´Ù½Ã ÁöÁ¤ÇÏ´Â °ÍÀ» ÀçÁöÁ¤(redirection)À̶ó Çϸç, ÀÌ·¸°Ô ¹æÇâÀ» ÀçÁöÁ¤ÇÔÀ¸·Î½á, ¾î¶² ¸í·ÉÀÌ ½ÇÇàµÇ´Â °úÁ¤¿¡¼­ ¹ß»ýÇÏ´Â ¿À·ù ¸Þ½ÃÁö¸¦ ¸ð´ÏÅÍ°¡ ¾Æ´Ñ ÁöÁ¤ÇÑ ÆÄÀÏ µûÀ§¿¡ ÀúÀåÇϹÇÀ¸·Î½á ¿¡·¯¸¦ Á¤È®ÇÏ°Ô ºÐ¼®ÇÒ ¶§ À¯¿ëÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖ´Ù.  

 

---------- Ãâ·Â ------------------------------

     >   write (command > filename)

     >> append (command >> filename)

     <   read (command < filename)

     2>  stderr (command 2> filename) - sh, ksh, bash

     >&  stderr (command >& filename) - csh

 

±âº»ÀûÀ¸·Î stdin, stdout, stderr¸¦ À§ÇØ ¿ÀÇ µÇ´Â ÆÄÀÏÀº /dev/tty, Áï ÀÚ½ÅÀÇ Å͹̳ÎÀÇ À̸§ÀÌ´Ù.
±âº»ÀÌ Å͹̳ÎÀ̹ǷΠ»ç¿ëÀÚµéÀº ÇÁ·Î±×·¥¿¡°Ô ¾îµð¿¡¼­ ÀÐ°í ¾îµð¿¡ ¾²¶ó°í ÁöÁ¤ÇÒ ÇÊ¿ä°¡ ¾ø´Ù.

¸ðµç ½©µéÀº stdin, stdout, stderr¿¡ ´ëÇÑ ±âº»ÀûÀÎ ¸®´ÙÀÌ·º¼ÇÀ» Á¦°øÇÑ´Ù. ´Ù¸¸ Bourne ½©Àº Ãß°¡·Î ÆÄÀÏ ±â¼ú¾î ¹øÈ£¸¦ 3¿¡¼­ 9±îÁö ´Ù·ê ¼ö ÀÖ´Ù.


csh¿¡¼­´Â Ç¥ÁØ ¿¡·¯ ÀüȯÀº sh(bash)¿Í´Â ´Ù¸£´Ù. º»½©(sh)À̳ª Äܽ©(ksh)¿¡¼­´Â Ç¥ÁØ ¿¡·¯ ÀüȯÀ¸·Î 2> ¸¦ »ç¿ëÇϳª, C½©(csh)¿¡¼­´Â >& ¸¦ »ç¿ëÇÑ´Ù.

noclobber ¼±ÅÃÀÚ°¡ ¼³Á¤µÈ °æ¿ì´Â >! ¿Í >&! ±âÈ£¸¦ »ç¿ëÇϸé csh°¡ ±âÁ¸ÀÇ ÆÄÀÏ À§¿¡ µ¡ºÙ¿© ±â·ÏÇÑ´Ù. ¶ÇÇÑ ±âÁ¸ ÆÄÀÏ µÚ¿¡ Ãâ·ÂÀ» Ãß°¡ÇÏ´Â °æ¿ì´Â >>! ³ª >>&! ±âÈ£¸¦ »ç¿ëÇÑ´Ù.

 

½©Àº Ç×»ó ±âº»ÀûÀ¸·Î Ç¥ÁØÀÔ·Â(stdin, Å°º¸µå), Ç¥ÁØÃâ·Â(stdout, ¸ð´ÏÅÍ), Ç¥ÁØ¿¡·¯(stderr, ¸ð´ÏÅÍ¿¡ ³ªÅ¸³¾ ¿¡·¯ ¸Þ¼¼Áö) "ÆÄÀϵé"À» ¿­¾î ³õ´Â´Ù. ÀÌ ÆÄÀϵéÀ» Æ÷ÇÔÇؼ­ ¿­·Á ÀÖ´Â ¾î¶² ÆÄÀÏÀÌ¶óµµ ÀçÁöÁ¤ µÉ ¼ö ÀÖ´Ù. ±×·¯¹Ç·Î ÀçÁöÁ¤ÇÏ¿© ÆÄÀÏ, ¸í·É¾î, ÇÁ·Î±×·¥, ½ºÅ©¸³Æ®, ½ÉÁö¾î´Â ½ºÅ©¸³Æ® ¼ÓÀÇ ÄÚµå ºí·°ÀÇ Ãâ·ÂÀ» ¹Þ¾Æ ´Ù¸¥ ÆÄÀÏ, ¸í·É¾î, ÇÁ·Î±×·¥, ½ºÅ©¸³Æ®ÀÇ ÀÔ·ÂÀ¸·Î º¸³»´Â °ÍÀÌ °¡´ÉÇÏ´Ù.

¿­·Á ÀÖ´Â ÆÄÀÏ °¢°¢Àº ÆÄÀÏ µð½ºÅ©¸³ÅÍ(file descriptor)¸¦ ÇÒ´ç ¹Þ´Â´Ù.

 

[1] Ç¥ÁØÀÔ·Â, Ç¥ÁØÃâ·Â, Ç¥ÁØ¿¡·¯¿¡ ÇØ´çÇÏ´Â ÆÄÀÏ µð½ºÅ©¸³ÅÍ´Â °¢°¢ 0, 1, 2 ÀÌ´Ù. Ãß°¡ÀûÀ¸·Î ¿­¸®´Â ÆÄÀÏÀ» À§Çؼ­ 3ºÎÅÍ 9±îÁöÀÇ ÆÄÀÏ µð½ºÅ©¸³ÅÍ°¡ ³²°ÜÁ® ÀÖ´Ù.

      Á¾Á¾, ÀÌ Ãß°¡ÀûÀÎ ÆÄÀÏ µð½ºÅ©¸³Å͵éÁßÀÇ Çϳª¸¦ Ç¥ÁØÀÔ·Â, Ç¥ÁØÃâ·Â, Ç¥ÁØ¿¡·¯·Î ÇÒ´çÇؼ­ ÀÓ½ÃÀûÀÎ Áߺ¹µÈ ¸µÅ©·Î ¾²´Â °ÍÀÌ À¯¿ëÇÒ ¶§°¡ ÀÖ´Ù.

[2] ÀÌ·± ¹æ¹ýÀ» ¾²¸é ¾ÆÁÖ º¹ÀâÇÑ ÀçÁöÁ¤À̳ª ÆÄÀÏ µð½ºÅ©¸³Å͸¦ µÚÁ× ¹ÚÁ× »ç¿ëÇßÀ» ¶§, ¾ÆÁÖ °£´ÜÇÏ°Ô ¿ø·¡´ë·Î º¹±¸½ÃÄÑ ÁØ´Ù

 

¡¼¿¹Á¦¡½
$ echo 1234567890 > aa ¢Ð "aa"¿¡ ¹®ÀÚ¿­À» ¾¸
$ exec 3<> aa ¢Ð "aa"À» ¿­°í 3¹ø ÆÄÀÏ µð½ºÅ©¸³Å͸¦ ÇÒ´ç
$ read -n 4 <&3 ¢Ð "aa"À» ¿­°í 3¹ø ÆÄÀÏ µð½ºÅ©¸³Å͸¦ ÇÒ´ç
$ echo -n . >&3 ¢Ð ¼Ò¼öÁ¡À» ¾²°í
$ exec 3>&- ¢Ð 3¹ø ÆÄÀÏ µð½ºÅ©¸³Å͸¦ ´ÝÀ½
$ cat aa 1234.67890 $

ÆÄÀÏ µð½ºÅ©¸³ÅÍ ´Ý±â

¿¬»êÀÚ ÀǹÌ
n<&- n¹ø ÀÔ·Â ÆÄÀÏ µð½ºÅ©¸³Å͸¦ ´ÝÀ½
0<&-,
<&-
Ç¥ÁØÀÔ·ÂÀ» ´ÝÀ½
n>&- n¹ø Ãâ·Â ÆÄÀÏ µð½ºÅ©¸³Å͸¦ ´ÝÀ½
1>&-,
>&-
Ç¥ÁØÃâ·ÂÀ» ´ÝÀ½

¡¼¿¹Á¦¡½
ÀÚ½Ä ÇÁ·Î¼¼½º´Â ¿­·Á ÀÖ´Â ÆÄÀÏ µð½ºÅ©¸³Å͸¦ »ó¼Ó ¹Þ´Âµ¥ ÀÌ°Í ¶§¹®¿¡ ÆÄÀÌÇÁ°¡ µ¿ÀÛÇÑ´Ù. ÆÄÀÏ µð½ºÅ©¸³ÅÍ°¡ »ó¼ÓµÇ±æ ¹Ù¶óÁö ¾Ê´Â´Ù¸é ±× ÆÄÀÏ µð½ºÅ©¸³Å͸¦ ´ÝÀ¸¸é µÈ´Ù.

$ exec 3>&1                              ¢Ð Ç¥ÁØÃâ·ÂÀÇ ÇöÀç "°ª"À» ÀúÀå.
$ ls -l 2>&1 >&3 3>&- | grep bad 3>&- ¢Ð 'ls'¿Í 'grep'À» À§ÇØ 3¹ø ÆÄÀÏ µð½ºÅ©¸³Å͸¦ ´Ý°í,
$ exec 3>&- ¢Ð ÀÌÁ¦, ½ºÅ©¸³Æ® ³ª¸ÓÁö ºÎºÐÀ» À§ÇØ ´Ý½À´Ï´Ù.

¡¼¿¹Á¦¡½

% bash                                ¢Ð bash·Î ½© Àüȯ
$ ping -c 1 203.234.57.256 2> bb >&2 ¢Ð 203.234.57.256À̶ó´Â È£½ºÆ®´Â ¾øÀ½
$ cat bb ¢Ð ±×·¯¹Ç·Î Ç¥ÁØ ¿¡·¯ Ãâ·ÂÀÌ bbÆÄÀÏ¿¡ ÀúÀåµÊ
ping: unknown host 203.234.57.256
$ ping -c 1 203.234.57.33 2> kk >&2 ¢Ð Á¤»óÀûÀÎ ping °á°ú°¡ kk ÆÄÀÏ¿¡ ÀúÀåµÊ
$ cat kk
203.234.57.33 is alive
$
$ csh ¢Ð csh·Î ½© Àüȯ
% ping -c 1 203.234.57.256 >& aa ¢Ð 203.234.57.256À̶ó´Â È£½ºÆ®°¡ ¾øÀ½
% cat aa ¢Ð ±×·¯¹Ç·Î Ç¥ÁØ ¿¡·¯ Ãâ·ÂÀÌ aa ÆÄÀÏ¿¡ ÀúÀåµÊ
ping: unknown host 203.234.57.256
%


 


À̸§ Æнº¿öµå
ºñ¹Ð±Û (üũÇÏ¸é ±Û¾´À̸¸ ³»¿ëÀ» È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù.)
¿ÞÂÊÀÇ ±ÛÀÚ¸¦ ÀÔ·ÂÇϼ¼¿ä.
   

 



 
»çÀÌÆ®¸í : ¸ðÁö¸®³× | ´ëÇ¥ : ÀÌ°æÇö | °³ÀÎÄ¿¹Â´ÏƼ : ·©Å°´åÄÄ ¿î¿µÃ¼Á¦(OS) | °æ±âµµ ¼º³²½Ã ºÐ´ç±¸ | ÀüÀÚ¿ìÆí : mojily°ñ¹ðÀÌchonnom.com Copyright ¨Ï www.chonnom.com www.kyunghyun.net www.mojily.net. All rights reserved.