A razão para este padrão é que scripts de mantenedores em pacotes Debian tendem a começar com set -e
, o que faz com que o shell saia assim que qualquer comando (estritamente falando, pipeline, lista ou comando composto) sair com um status zero. Isso garante que os erros não se acumulem: assim que algo dá errado, o script é abortado.
Nos casos em que um comando no script pode falhar, a adição de || true
garante que o comando composto resultante sempre saia com o status zero, portanto, o script não é interrompido. Por exemplo, remover um diretório não deve ser um erro fatal (impedindo que um pacote seja removido); então usaríamos
rmdir ... || true
desde que rmdir
não tenha uma opção para dizer a ele para ignorar erros.