Para o fundo:
- um número 1 = padrão (ou seja, STDOUT)
- um número 2 = erro padrão (por exemplo, STDERR)
- se um número não for fornecido explicitamente, então número 1 será assumido pelo shell (bash)
Primeiro, vamos abordar a função destes. Para referência, consulte o Guia Avançado de Roteiro de Bash .
Funções
2>&-
A forma geral desta é M>&-
, onde "M" é um número de descritor de arquivo. Isso fechará a saída para qualquer descritor de arquivo mencionado, por exemplo, "M" .
2>/dev/null
A forma geral desta é M>/dev/null
, onde "M" é um número de descritor de arquivo. Isso redirecionará o descritor de arquivo, "M" , para /dev/null
.
2>&1
A forma geral desta é M>&N
, onde "M" & "N" são números descritores de arquivos. Ele combina a saída dos descritores de arquivos "M" e "N" em um único fluxo.
|&
Esta é apenas uma abreviação de 2>&1 |
. Foi adicionado no Bash 4.
&>/dev/null
Esta é apenas uma abreviação de >/dev/null 2>&1
. Ele redireciona o descritor de arquivo 2 (STDERR) e o descritor 1 (STDOUT) para /dev/null
.
>/dev/null
Esta é apenas uma abreviação de 1>/dev/null
. Ele redireciona o descritor de arquivo 1 (STDOUT) para /dev/null
.
Portabilidade para não-bash, tcsh, mksh, etc.
Eu não lidei muito com outros shells fora de csh
e tcsh
. Minha experiência com esses 2 em comparação com os operadores de redirecionamento do bash é que o bash é superior a esse respeito. Veja a página do manual do tcsh para mais detalhes.
Os comandos que você perguntou sobre nenhum são diretamente suportados pelo csh / tcsh. Você teria que usar sintaxes diferentes para construir funções semelhantes.