Pular para o conteúdo

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.
Leonardo Afonso Amorim leonardoamorim
Hits: 141.808 Categoria: Shell Script Subcategoria: Introdução
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Parte 6: 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".

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
   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

Afinal, será que ser hacker, realmente, é o que a mídia divulga?

O mundo a um clique e um "Eu" fora de nós

OpenLdap no Debian Squeeze

Configurando JAVA no Firefox para acessar página de bancos

Cego guiando cego

Wordpress em 30 segundos com WP-CLI

Trabalhar com array no Bash

Colorindo o Shell

Mostrando dicas ao iniciar o terminal

Introdução ao Fortran (parte 1)

#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

Entre na sua conta para comentar.