Pular para o conteúdo

Escondendo / Personalizando mensagens de erro no prompt

Dica publicada em Shell Script / Miscelânea
Daniel Cassemiro Freire alphainfo
Hits: 8.657 Categoria: Shell Script Subcategoria: Miscelânea
  • 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.

Escondendo / Personalizando mensagens de erro no prompt

Muitas vezes temos a necessidade de desenvolver um script para usuários que não têm muita intimidade com os comandos do Linux (nem com as suas saídas).

Então imagine se desenvolvermos um script como esse para listar diretórios:

#!/bin/sh
# Modo de uso: lista [nome do dir]

ls $1
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.

Onde o usuário irá entrar com o nome do programa e o nome do dir a ser listado como parâmetro desse programa.

Imagina se ele pedir para listar um diretório que não existe. Iria jogar uma mensagem de erro. No caso do ls, é uma mensagem óbvia, mas existem comandos que, para quem não tem intimidade com o Linux e seus comandos, deixaria o usuário perdido. Poderíamos fazer da seguinte forma:

#!/bin/sh
# Modo de uso: lista [nome do dir]

ls $1 2> /dev/null

if [ "$?" != 0 ]
echo "Erro ao listar o diretório $1"
fi

O segredo é:
  • Ao executar o comando, redirecionar suas mensagens de erro para o nada (exemplo: ls $1 2>/dev/null).

  • Checar se a variável que guarda o retorno que o programa executado deu para o sistema operacional foi diferente de zero (exemplo: if [ "$?" != 0 ] ).

Abraços,
Daniel Freire

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.
Nenhuma dica encontrada.

Comentar em bloco

Alterando as ID tags de seus arquivos de áudio em massa pelo terminal

Aumento de produtividade na programação shell

Lendo manpages no Firefox

Colocando bordas em imagens em lote através de shell script

#1 Comentário enviado por vodooo em 01/09/2004 - 00:17h
Dica ótima para usuários iniciantes!!

Abraços
#2 Comentário enviado por maykon19 em 25/08/2006 - 11:33h
Muito bom. Mas o que quer dizer essa parte "2>" e "$?".
#3 Comentário enviado por maykon19 em 25/08/2006 - 11:51h
Meu caro colega . Seu script e sua idéia são muito boa. Mas tem um porém
ele não irá funcionar do jeito que colocou ai.

Acabei de testar e faltou algumas coisinhas, olha só.

#!/bin/sh

ls -$1 2> /dev/null

if [ "$?"!=0 ]; then #faltou o ; eo then depois da condição
echo "Erro ao listar o diretório $i";
fi

Mas como eu disse sua idéia é muito boa. Valeu...
#4 Comentário enviado por terra.jr em 11/09/2009 - 14:22h
Quando falta apenas uma chave, colchete, ponto, é normal. A gente digita tanto codigo o dia todo que uma chave a mais uma a menos.

kkk

Dá pra usar o IF sem ter os [] (colchetes tambem).

Contribuir com comentário

Entre na sua conta para comentar.