“exec &>/dev/null”中间的 & 起什么作用?

“exec &>/dev/null”中间的 & 起什么作用?

我的命令是:

exec &>/dev/null

这个 & 和完整命令在这里做什么?我知道它被重定向到位桶。

答案1

这是&>,不仅仅是&

在 中bash&>将标准输出流和标准错误流重定向到某处。

因此,utility &>/dev/null与 相同utility >/dev/null 2>&1

该命令exec &>/dev/null将当前 shell 的两个输出流重定向到/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.                           

相关内容