Acesso direto ao conteúdo
Logotipo Dicas-L, por Ricardo Burile

Busca

Visite também: Segurança Linux ·  UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

Você está aqui: Home  → Arquivo Dicas-L

 

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

Programação Shell - FISL

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 16 de Junho de 2003

Esta dica eu peguei na palestra do Júlio Cezar Neves, no IV Fórum Internacional de Software Livre, em Porto Alegre. O Júlio é o autor do excelente livro Linux: Programação Shell. Eu comprei o livro dele, a 2ª edição, no ano 2001 e carrego para todo lado. O livro está quase se desmanchando de tão manuseado, mas eu sempre descubro coisas interessantes nele. O livro já está na 3ª edição e mais informações sobre ele podem ser encontradas em http://www.brasport.com.br/livro.asp?Cod=85-7452-118-3

A palestra do Júlio foi sensacional. O fantástico é que o livro transpira o mesmo bom humor e alegria do seu autor.

Antes da dica, um alerta, eu copiei a idéia principal da dica da palestra do Júlio e coloquei algumas coisas da minha cabeça. Se houver algum erro aqui o culpado sou eu e não o Júlio.

Dado o alerta, vamos à dica:

A programação shell tem alguns recursos bem interessantes. Cada comando executado gera um código de retorno, indicando se o comando foi bem sucedido ou se houve algum problema.

Vejamos alguns exemplos:

  % cd dir
  bash: cd: dir: Arquivo ou diretório não encontrado
  % echo $?
  1
  % mkdir dir
  % cd dir
  % echo $?
  0

O código de retorno de um comando executado em bash fica armazenado na variável $?.

Eu tentei ir para o diretório dir, mas como dir não existe, o código de retorno da operação deu 1 (falso). Em seguida criei o diretório e fui para lá. Desta vez deu certo e o código de retorno foi 0 (verdadeiro).

Vejam que interessante, na programação shell, eu posso fazer o teste dentro de uma construção de laço ou condicional, como um if:

  #!/bin/bash
  
  if cd dir
  then
  	touch a b c
  	ls -l
          echo estou em dir
  else
          mkdir dir
          cd dir
  	touch a b c
  	ls -l
  fi

O comando cd dir faz parte da condição de teste do if. Se deu certo, vou para dir, se não funcionou, crio o diretório, vou para lá ("mkdir dir" e "cd dir").

Vamos fazer um teste real:

  % cddir.sh
  ./cddir.sh: line 3: cd: dir: Arquivo ou diretório não encontrado
  total 0
  -rw-rw-r--    1 queiroz  queiroz         0 Jun 13 12:38 a
  -rw-rw-r--    1 queiroz  queiroz         0 Jun 13 12:38 b
  -rw-rw-r--    1 queiroz  queiroz         0 Jun 13 12:38 c

O diretório dir não existia, daí a mensagem de erro. A shell script executou o else, criou o diretório dir, criou os arquivos a, b, c, e em seguida emitiu o comando ls.

Para não receber mensagens de erro eu posso redirecionar estas saídas para /dev/null:

  if cd dir 2> /dev/null

Este foi apenas um exemplo extremamente útil de um recurso de shell scripts. Entendendo-se o conceito o número de aplicações possíveis é enorme.

Eu utilizei a shell bash, em um sistema Conectiva Linux versão 9.0.

Veja a relação completa dos artigos de Rubens Queiroz de Almeida

Formato PDF
Newsfeed RSS
Formato para impressão
PDF RSS Imprimir

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 3.01/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.0 /5 (1506 votos)

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script
Lan University

Submarino.com.br

Encontre imóveis, apartamentos e casas a venda no Imobilien
Saiba mais

 

 

Procure pela casa ou apartamento ideal à venda ou para aluguel na busca inteligente do Imohoo
Buscar imóveis