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
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 ] ).