Esta parte é extremamente importante, pois se trabalha com isso sempre. Por default(padrão), a entrada do Shell é o teclado, a saída a tela, e os erros a tela também.
Entrada de dados é representada por stdin;
Saída de dados é representada por stdout;
Saída de erros é representada por stderr;
Mas isso pode ser mudado com o uso de caracteres de redirecionamento, veja abaixo:
Para mudar saída padrão:
- > Redireciona a saída em um arquivo apagando o conteúdo anterior(se existir);
- >> Redireciona a saída no final de um arquivo, preservando-o;
- 2> Faz o mesmo que o > mas acrescenta os erros da saída;
- 2>> Faz o mesmo que o >> mas acrescenta os erros da saída.
Para mudar entrada padrão:
- < Indica para o Shell que a entrada não será o teclado;
- << Serve para indicar o escopo de um programa (rótulo);
Comandos auxiliares:
- | (pipe, pronuncia-se paipe) Serve para canalizar saída de dado para outro comando;
- tee Serve para canalizar saída de dado para um arquivo;
- & Substitui o 2>>
Atenção: Para seguir os exemplos abaixo, abra um shell gráfico e crie um diretório chamado "shell" e nele acrescente os arquivos script1, script2, script3, no seu /home.
Exemplo 1 (>,>>,2>>):
Observação: O diretório papel/ inexiste.
$ ls shell/ papel/ > log_ls.txt
O comando ls listará os diretórios shell/ e papel/ e redirecioná a saída para o arquivo log_ls.txt.
Durante a execução do comando, será exibido a seguinte mensagem: "/usr/bin/ls: papel/: Arquivo ou diretório não encontrado" (Saída de erro), como usamos o ">" ao invés de "2>" (para erro), o que ficou no arquivo foi só a saída certa.
Para ver o conteúdo do log_ls.txt (a saída de erro não apareceu nele), faça:
$ cat log_ls.txt
Para acrescentar a saída com erros, mude o comando para:
$ ls papel/ 2>> log_ls.txt
Exemplo 2 (pipe e tee):
$ ls shell/ | sort | tee listagem.txt
Este comando lista o conteúdo do diretório "shell" canalizando sua saída para o comando "sort", que ordena os arquivos por ordem alfabética, canalizando sua saída para o comando "tee" que canaliza toda a saída para o arquivo "listagem.txt".