Operadores de redirecionamento

ice

Operadores de redirecionamento são fundamentos essenciais no mundo *NIX, tanto que quase todo shell script mais avançado usa e abusa desse recurso. Para descobrir o que cada um dos operadores faz, você pode dar uma olhadinha neste artigo.

[ Hits: 68.709 ]

Por: Iuri Cernov em 18/11/2004


O operador 2>



Quando vai se testar o operador >, você pode facilmente verificar que ele não redireciona mensagens de erro. Por exemplo:

(supondo que arquivoqnaoexiste não existe)

$ cat arquivoqnaoexiste > aaa
cat: arquivoqnaoexiste: file not found

$ cat aaa

O operador 2> tem esta função: redirecionar somente as mensagens de erro para um arquivo. Vejamos o mesmo exemplo acima:

$ cat arquivoqnaoexiste 2> aaa
$ cat aaa

cat: arquivoqnaoexiste: file not found

Você pode usar este operador em conjunto com o > ou >>, veja como:

$ comando > out 2> err

NOTA: lógico que "out" e "err" podem variar

Linguagens como C e Shell-script podem facilmente escrever mensagens de erro que são redirecionadas apenas com 2>. Em C, basta escrever na stream "stderr". Veja como:
  • fprintf(stderr, "Erro ao abrir %s\n", fl); // C
  • cerr << "Erro ao abrir " << fl << endl; // C++
  • echo "Erro ao abrir $s" >&2 # em shell-script

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Os operadores > e >>
   3. O operador <
   4. O operador 2>
   5. O pipe
Outros artigos deste autor

Criando uma calculadora com o Glade

Incrementando seus scripts com dialog

Leitura recomendada

Expressões regulares no Bash : parte I

Definição automática de wallpaper em função do horário

Recebendo seu IP dinâmico via email

Monitorar servidores e enviar alertas por e-mail e SMS

Redirecionamentos, Pipes e Fluxos

  
Comentários
[1] Comentário enviado por removido em 18/11/2004 - 02:34h

Muito bom artigo, Iuri. Queria saber se vc ou alguém conhece e pode indicar algum livro sobre esse assunto (Shell Script). Ok?
[]s!

Wesley Caiapó

[2] Comentário enviado por danillofa em 18/11/2004 - 08:16h

Cara acho que em qualquer lugar que vc perguntar sobre um bom livro de shell irao te indicar o do Julio Neves
Programação Shell Linux 4a. edição
http://www.brasport.com.br/livro.asp?Cod=85-7452-164-7

flws
t+

Danillo

[3] Comentário enviado por pop_lamen em 18/11/2004 - 14:48h

Bom o artigo, mas faltou muita coisa....
Por exemplo faltou cobrir o redirecionamento de fluxo para devices,
exemplo:
echo fuck > /dev/null
dentre outors.
Mas mesmo assim ta valendo, t+!

[4] Comentário enviado por jllucca em 19/11/2004 - 13:31h

Olá,

cara o artigo ta excelente. Só discordo do "2>" ser um operador. No mundo *nux, nós temos normalmente três arquivos abertos(não tenho certeza da ordem stdin e stdout): 0(stdin), 1(stdout), 2(stderr). Assim, quando fazemos "2>algo" estamos fazendo o dispositivo "/dev/stderr" enviar suas mensagens para algo. Essa parte teria sido uma ótima ancora pra voce falar de redirecionamento para dispositivos como o pop_lamen já comentou. Assim, voce, ao inves de stderr, poderia usar:

fprintf(2, "Erro ao abrir %s\n", fl); // em C

[]'s

[5] Comentário enviado por mailws em 21/11/2005 - 04:46h

Não entendi direito esse PIPE

[6] Comentário enviado por rmllo em 29/05/2011 - 13:06h

Parabéns pelo artigo foi de grande ajuda.
Valeu.

[7] Comentário enviado por Stuani255 em 27/05/2016 - 11:30h

Alguem pode dar um exemplo usando redirecionamento criando um arquivo txt? Estou começando agora a aprender shell script e pra mim esses comandos são meio vagos.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts