"while:" vs. "while true"

Когда вы смотрите, как бесконечные циклы должны быть реализованы, вы в основном видите этот подход:

while :
do
  # loop infinitely
done

Но я просто не понимаю использование : здесь. Не лучше ли использовать:

while true
do
  # loop infinitely
done

?

Ответ 1

из руководства:

: [аргументы]           Нет эффекта; команда ничего не делает за пределами расширения аргументов и выполнения каких-либо заданных           переназначения. Возвращается нулевой код возврата.

Так как это всегда возвращает ноль, значит, он аналогичен используемому как true

Отметьте этот ответ: Какова цель`: '(двоеточия) GNU Bash Builtin?

Ответ 2

Двоеточие - это встроенная команда, которая ничего не делает, но возвращает 0 (успех). Таким образом, он короче (и быстрее), чем вызов фактической команды, чтобы сделать то же самое.