"exec &> / dev / null"중간에 &는 무엇을합니까?


답변:


22

그것만이 &>아닙니다 &.

에서 bash, &>표준 출력 스트림과 표준 오류 스트림 곳 모두를 리디렉션합니다.

따라서 utility &>/dev/null와 동일합니다 utility >/dev/null 2>&1.

이 명령 exec &>/dev/null은 현재 셸의 두 출력 스트림을 모두 리디렉션합니다 /dev/null(즉, 해당 시점, 오류 또는 그 밖의 방법으로 스크립트의 모든 출력을 버림).

bash매뉴얼 의 관련 부분 :

Redirecting Standard Output and Standard Error                              
   This construct allows both the standard output (file descriptor 1) and  
   the standard error output (file descriptor 2) to be redirected to the   
   file whose name is the expansion of word.                               

   There are two formats for redirecting standard output and standard      
   error:                                                                  

          &>word                                                           
   and                                                                     
          >&word                                                           

   Of the two forms, the first is preferred.  This is semantically         
   equivalent to                                                           

          >word 2>&1                                                       

   When using the second form, word may not expand to a number or -.  If   
   it does, other redirection operators apply (see Duplicating File        
   Descriptors below) for compatibility reasons.                           

원래 예제와 비 Bash에 해당하는 것은exec 2>&1 > /dev/null
trr

6
@trr 아니요, 표준 오류를 표준 출력으로 이동 한 다음 표준 출력을 /dev/null표준 오류 리디렉션합니다 . 동등한 것은입니다 exec >/dev/null 2>&1. 리디렉션 순서가 중요합니다.
Kusalananda

당신 말이 맞아요, 혼란
스러웠어요

1
@trr 걱정 마세요.
Kusalananda
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.