Introdução ao uso de Shell Script

Este artigo se destina aos iniciantes em sistemas Unix-like, como o GNU/Linux, que estejam interessados em aprender Shell Script.

[ Hits: 139.012 ]

Por: Leonardo Afonso Amorim em 30/05/2006


Trabalhando com entrada e saída de dados



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".

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Tipos de shell (os principais)
   3. Conhecimentos básicos
   4. Matemática no shell
   5. Trabalhando com parâmetros
   6. Trabalhando com entrada e saída de dados
   7. Um exemplo de shell script básico
   8. Orientações para os iniciantes
Outros artigos deste autor

Configurando impressora HP692C no Slackware

O que é $PATH, como funciona e como trabalhar com ele

Configurando JAVA no Firefox para acessar página de bancos

Configurar uma rede doméstica e compartilhar ADSL no Slackware

OpenLdap no Debian Squeeze

Leitura recomendada

expr - Definição e uso do comando

Introduzindo um pouco mais a fundo o shell script

Pipelines (Canalizadores)

Como trabalhar com funções em bash

Discar BrasilTelecom com PPPOE no Ubuntu 6.10

  
Comentários
[1] Comentário enviado por removido em 30/05/2006 - 10:40h

Artigo simples mas suficiente pra despertar interesses. Até porque, falar sobre shell script de forma completa é impossível. Isso é assunto pra vários livros (como o do prof. Julio Cezar Neves), sobretudo porque, como é uma linguagém de programação, a quantidade de informações sobre comandos é uma enormidade.

Resta aos interessados mergulharem de cabeça e se dedicarem ao máximo no aprendizado dessa modalidade de programação.

Abraço,

Wesley Caiapó

[2] Comentário enviado por aprendiz_ce em 30/05/2006 - 12:24h

Muito bom!

Artigo simples e bem objetivo.

Parabéns pela sua contribuição.

[3] Comentário enviado por thelinux em 30/05/2006 - 13:01h

Parabéns pelo tuto. Muito prático mesmo.

[4] Comentário enviado por tenchi em 30/05/2006 - 13:25h

Muito bom o artigo, mas tem uma coisa que eu nao entendi. Em varios momentos voce cita a barra inversa, mas quando vai dar o exemplo contendo ela, eu naum vejo nenhuma barra.

[5] Comentário enviado por leonardoamorim em 30/05/2006 - 19:01h

tenchi, desculpe-me, durante a formatação eu esqueci de colocar a barra. Já fiz a correção. :)

[6] Comentário enviado por nataliawanick em 31/05/2006 - 06:11h

Muito bom seu artigo, parabéns!

[7] Comentário enviado por f360c4 em 31/05/2006 - 08:31h

profissional seu artigo :D parabéns

[8] Comentário enviado por claudiolima em 31/05/2006 - 10:05h

Bom artigo, gostei pois a linguagem se parece com o PHP, e nisso sou muito bom!

[9] Comentário enviado por dredmc em 26/06/2006 - 00:04h

muito bom artigo continue assim contribuindo com a familia "FREE"...... outra coisa alguem tem videosula de fotoshop ou fireworks ou gimp com urgencia?

[10] Comentário enviado por nayara em 26/06/2007 - 15:20h

Muito bom artigo, simples e com bons exemplos.

[11] Comentário enviado por f_Candido em 21/07/2007 - 01:19h

Muito bom, me ajudou bastante em meus estudos...

[12] Comentário enviado por DaniloM em 26/10/2007 - 22:03h

Cara, isso já vem acontesendo comigo a um tempinho. A maioria dos exemplos que sigo, sempre da algum erro diferente mesmo eu dando Ctrl+C e Ctrol+V. Poderiamos nos encontrar no msn?

[13] Comentário enviado por rakeva em 31/08/2009 - 10:09h

Muito Bom! Ótimo artigo!

[14] Comentário enviado por ytriosalmito em 03/11/2012 - 00:56h

Muito bom ;D


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts