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.
Este é, com certeza, o mais importante de todos os operadores de redirecionamento. O pipe é bem complexo ao se comparar com os outros operadores, mas vale è pena conhecer.
A sintaxe:
$ comando1 | comando2
O que o pipe faz é redirecionar a saída de comando1 para entrada de comando2. Não entendeu? Veja um exemplo:
Imagine que o comando "xyz" mostre a frase "Teste de pipe" e o comando "separa" transforma cada espaço em um '-'. Veja:
$ xyz
Teste de pipe
$ separa
isto é um teste! ^D <-- Isto foi digitado pelo teclado!!!!!!!!
isto-é-um-teste!
$ _
Agora se quisermos fazer aparecer a saída de xyz ("Teste de pipe") ser separado por '-'s? Basta:
$ xyz | separa
Teste-de-pipe
Esta é uma noção. Veja alguns comandos que trabalham muito bem com o pipe:
echo
cat
less
more
sed
awk
etc
Bom, o artigo fica por aqui. Espero que tenha dado uma noção para todos que querem se aprofundar no mundo do #!/bin/sh. :)
[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:
[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.