「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.                           

元の例と完全にexec 2>&1 > /dev/null
一致

6
@trrいいえ。最初に標準エラーを標準出力にリダイレクトし、次に標準出力にリダイレクトします/dev/null(ただし、標準エラーリダイレクトしません)。それと同等のものはexec >/dev/null 2>&1です。リダイレクトの順序は重要です。
クサラナンダ

あなたは正しい、私は混乱していた
-trr

1
@trr心配ありません。
クサラナナンダ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.