“Exec &> / dev / null” ortasında ne & yapıyor?


Yanıtlar:


22

Sadece &>değil &.

İçinde bash, &>hem standart çıktı akışını hem de standart hata akışını bir yere yönlendirir.

Dolayısıyla, utility &>/dev/nullaynıdır utility >/dev/null 2>&1.

Komut exec &>/dev/null, geçerli kabuğun her iki çıktı akışını da yönlendirir /dev/null(yani komut dosyasının tüm çıktılarını bu noktadan, hatadan veya başka bir yerden atar).

Kılavuzun ilgili kısmı 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.                           

Orijinal örneğin Bash olmayan tam eşdeğeriexec 2>&1 > /dev/null
trr

6
@trr Hayır, bu önce standart hatayı standart çıktının olduğu yere yönlendirir ve ardından standart çıktıyı /dev/null(standart hataya değil) olarak yönlendirir. Eşdeğer olanı exec >/dev/null 2>&1. Yönlendirmelerin sırası önemlidir.
Kusalananda

Haklısın, kafam karıştı
trr

1
@trr Endişelenme.
Kusalananda
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.