Причина этого шаблона заключается в том, что сценарии сопровождающего в пакетах Debian, как правило, начинаются с того set -e, что оболочка завершает работу, как только завершается любая команда (строго говоря, команда pipe, list или составная команда) с ненулевым статусом. Это гарантирует, что ошибки не будут накапливаться: как только что-то пойдет не так, скрипт прерывается.
В тех случаях, когда команде в сценарии разрешается сбой, добавление || trueгарантирует, что результирующая составная команда всегда завершается с нулевым статусом, поэтому сценарий не прерывается. Например, удаление каталога не должно быть фатальной ошибкой (предотвращение удаления пакета); поэтому мы будем использовать
rmdir ... || true
так rmdirкак не имеет возможности сказать ему игнорировать ошибки.
||:это еще один идиоматический способ написания этого (:будучи еще одной записью во встроенной таблице, указывающей наtrue- но гарантированно встроенной даже в Борне; при этом для POSIX shtrueтакже гарантированно будет встроенной - так что это больше краткости, чем эффективности в даже отдаленно-современные времена).