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