Entrada e saída padrão
Pode-se considerar que a entrada e saída padrão dos dados são respedtivamente o teclado e a tela, que são denominadas também de stdout e stdin. Essas saídas e entradas podem ser facilmente tratadas (direcionadas ou modificadas) com alguns caracteres especiais.
- Entrada Padrão: STDIN (0)
- Saída padrão: STDOUT (1)
- Saída de Erro: STDERR (2)
Redirecionamentos
- [ > ] : redireciona a saída padrão para um arquivo. No caso a sáida padão é toda saída gerada por um comando que não seja proveniente de um erro, por exemplo o resultado de um comando ou os dados a serem exibidos em um script. O uso desse redirecionamento cria um arquivo caso o mesmo não exista e sobrescreve todo o conteúdo caso o arquivo já exista.
[user@host$:] cat arquivo1.txt > arquivoSaida.txt
- [ >> ] : similar ao redirecionamento anterior, porem concatena o conteúdo com o já existente. Caso o arquivo não exista ele é criado
[user@host$:] cat arquivo1.txt >> arquivoSaida.txt
- [ < ] : função contrária a do [ > ], ele informa ao shell que a entrada não será feita pela entrada padrão (teclado/stdin/1) mas por um arquivo repassado como argrumento
- [ << ] : indica ao shell que o escopo do comando inicia na linha seguinte e termina quando encontrar um rótulo (label) definido.
> Hoje os usuários conectados eram:
> `who`
> FimMail
[user@host$:]
- [ 2> ]: redireciona a saída de erro para um arquivo apagando seu conteúdo. Se o arquivo não existir, ele será criado.
- [ 2>> ]: redireciona a saída de erro concatenando com o conteúdo do arquivo. Se o arquivo não existir, ele será criado.
Estes útimos dois operadores podem ser utilizados em conjunto com os anteriores, redirecioando a saida para um arquivo e a saída de erro para outro.
Ex: [user@host$:] comando > saidaPadrao.txt 2> saidaErro.log
- [ >&2 ]: redireciona a saída padrão para a saída de erro.
- [ 2>&1 ]: Redireciona a saída de erro para a saída padrão. No exemplo abaixo toda a saída será escrita no arquivo.
- [ >&- ]: fecha a saída de padão. As mensagens de erro não serão exibidas.
- [ 2>&- ]: fecha a saída de erro. As mensagens de erro não serão exibidas.
[user@host$:] ipconfig 2>&-
- [ | ]: conecta a saída padrão com a entrada padrão de outro comando.
Exemplos gerais.
1. Armazenar todo o conteúdo de um script em um arquivo, para controlar seu log.
[user@host$:] ./backup.sh > /var/logs/logBackup.sh 2>&1
2. Armazenar todo o conteúdo de um script em um arquivo, para controlar seu log, sem apagar o conteúdo anterior.
[user@host$:] ./backup.sh >> /var/logs/logBackup.sh 2>&1
3. Procurar os arquivos modificados a mais de 30 dias
[user@host$:] find /home/public_html/ -type f -mtime +30 -exce ls {} \; > arquivosModif.txtFontes
- http://www.inf.ufpr.br/afms03/shell3.html
- http://www.mhavila.com.br/topicos/unix/shscript.html
- http://www.vivaolinux.com.br/artigo/Operadores-de-redirecionamento/
- http://www.ultramaratonahowto.com.br/2008/tutoriais/shell_ultra_maratona.pdf