Alexsandro Felix

Como saber se comando do script foi executado com sucesso?

Não muito raramente precisamos saber se um determinado script foi executado com sucesso ou não? Para isso, vamos usar a váriável $? ela retorna “0” se o ultimo comando foi executado com sucesso, e retorna “1” se houve erro neste comando.

Abaixo segue uma tabela com essas variáveis especiais que estão disponíveis no shell:

Variável Descrição:

Veja este exemplo do comando cat em meu terminal:

cat meuprograma.py
cat meuprograma.py

O comando cat foi executado com sucesso, então vamos verificar o que ficou salvo na variável $?:

Como o comando foi executado com sucesso, na variável ficou registrado o o valor 0 que aqui podemos interpretar como sendo True ou Verdadeiro.

Então vamos testar um comando que irá falhar para vermos o que ficará salvo na variável $? neste caso:

Podemos então entender que quando o comando não é executado com êxito, o valor 1 é salvo na variável $?, ou seja: False ou Falso.

No exemplo abaixo só coloquei o resultado de “sucesso” porque em meus testes, quando tentei compactar um arquivo inexistente ou mesmo colocando argumentos errados para compactar, simplesmente o comando não era executado, ‘quebrando’ assim o script:

#!/bin/bash

tar -zcf escrever.tar.gz escrever.py

if [ $? -eq 0 ]
then
    echo "sucesso"
fi

Esta dica foi retirada de uma resposta minha à uma dúvida publicada no StackOverflow em Português

Sair da versão mobile