A instrução return
retornará um erro se a instrução não for executada a partir de uma função.
Nas funções do shell, use return
. Em scripts, use exit
.
Um script curto como
#!/bin/bash
return 0
produzirá a mensagem de erro
line 1: return: can only 'return' from a function or sourced script
e definirá $?
para 1.
Se você não sair do script com um exit
explícito (ou se sair com exit
, mas sem especificar um código de saída), o código de retorno do script como um todo será igual ao último comando executado.
Ter exit "$?"
é o mesmo que exit
, e se estiver no final do script, isso pode ser deixado de fora completamente.
Em geral, sugiro também que você use $HOME
em vez de til em scripts. Isso ocorre porque $HOME
funciona como qualquer outra variável, enquanto o til é expandido em uma etapa de expansão separada, o que significa que ele não se comporta como uma variável e não é expandido em strings entre aspas. $HOME
também é mais descritivo e, como é um script, você pode gastar alguns toques de tecla extras para tornar o código mais legível.