Cosa fa e cosa fa nel mezzo di "exec &> / dev / null"?


Risposte:


22

Non è &>solo &.

In bash, &>reindirizza da qualche parte sia il flusso di output standard sia il flusso di errore standard.

Quindi, utility &>/dev/nullè lo stesso di utility >/dev/null 2>&1.

Il comando exec &>/dev/nullreindirizza entrambi i flussi di output della shell corrente su /dev/null(ovvero scarta tutto l'output dello script da quel punto in poi, errore o altro).

La parte pertinente del bashmanuale:

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.                           

L'equivalente completo non Bash dell'esempio originale sarebbeexec 2>&1 > /dev/null
tr

6
@trr No, questo reindirizzerebbe prima l'errore standard ovunque andasse l'output standard, quindi reindirizzerebbe l'output standard su /dev/null(ma non sull'errore standard). Ciò a cui è equivalente è exec >/dev/null 2>&1. L'ordine dei reindirizzamenti è importante.
Kusalananda

Hai ragione, ero confuso
TRR

1
@trr Nessun problema.
Kusalananda
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.