set -e
fará o shell sair assim que um comando falhar. Ou seja, assim que o comando unmount
for concluído. O if
não pode pegá-lo, pois o script sai antes mesmo de chegar ao if
. Você pode corrigir isso colocando o comando unmount
em a condição if (negada com !
para fazer com que ela execute a cláusula then
se a desmontagem falhar, em vez de ser bem-sucedida):
if ! unmount $MOUNTPATH; then
/bin/echo "Failed to unmount! Already unmounted?"
fi