você está aqui: Home  → Arquivo de Mensagens Programação Shell Linux: Inscrições Abertas

Programação Shell - FISL - Comentários

Colaboração: Pedro Zorzenon Neto

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

Acho que vale a pena ressaltar que em shell, na grande maioria dos casos, o código de saída é 0 para sucesso e diferente de 0 para falha. No caso de ser diferente de 0, o número corresponde ao tipo de falha encontrado.

Ex: o ipchains retorna:

0 para sucesso
2 para erros devidos a parametros incorretos na linha de comando,
3 para erros de kernel (kernel não compilado com ipchains),
1 para outros erros (falta de permissão, etc...)

Então, caso você queira saber se um programa terminou com sucesso:

if [ $? == 0 ]; then
some commands...
fi

E se quiser saber se ele terminou com falha, não compare com 1, mas sim compare com diferente de 0.

if [ $? != 0 ]; then
some commands...
fi

Outra dica relacionada com o código de saída, é o '||' e o '&&'. O simbolo '||' executa apenas se o comando anterior falhar. o símbolo '&&' executa apenas se o comando anterior teve sucesso.

Ex:

# executa o comando 'cd'. se NÃO CONSEGUIU executar o
# comando 'cd', então executa o 'mkdir'
cd algumdiretorio || mkdir algumdiretorio

# executa o comando 'cd'. se CONSEGUIU executar o
# comando 'cd', então executa o 'touch'
cd algumdiretorio && touch meuarquivo

Estas dicas anteriores foram testadas no "bash". Provavelmente funcionarão em outros tipos de "shell".

Um guia muito bom sobre "bash" pode ser encontrado em: Advanced Bash-Scripting Guide http://www.tldp.org/guides.html#abs



Veja a relação completa dos artigos de Pedro Zorzenon Neto