Acesso direto ao conteúdo

Busca

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

você está aqui: Home  → Colunistas  →  Cantinho do Shell

 

 

Mais truques do Papai do Shell (Júlio Neves)

Por Rubens Queiroz de Almeida

Data de Publicação: 03 de Dezembro de 2006

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.

Dica veiculada na Dicas-L em 16 de junho de 2003 Foi inspirada na palestra de Júlio Neves, no IV Fórum Internacional de Software Livre, em Porto Alegre, em 2003. Se houver algum erro aqui a culpa é minha e não do Júlio, é claro :-)

Veja a relação completa dos artigos da coluna Cantinho do Shell

Formato PDF
Newsfeed RSS
Formato para impressão
PDF RSS Imprimir
  • Currently 3.14/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.1 /5 (271 votos)


Para se manter atualizado sobre as novidades desta coluna, consulte sempre o newsfeed RSS

Cantinho do Shell NewsFeed RSS

Para saber mais sobre RSS, leia o artigo O Padrão RSS - A luz no fim do túnel.

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

Bombando o Shell - Caixa de Ferramentas Gráficas do Shell Linux></A>
</div>
<div align=center>
<!--
<a href='http://www.idph.net/inglesonline/inscricao.shtml' target='_blank'><img src='http://www.dicas-l.com.br/imagens/InglesOnline.jpg' border='0' alt=''></a><BR><BR>-->
<A HREF=http://iol.idph.com.br rel=

 

 

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