https://stackoverflow.com/questions/3224878/what-is-the-purpose-of-the-colon-gnu-bash-builtin https://unix.stackexchange.com/questions/31673/what-purpose-does-the-colon-builtin-serve
Historically, Bourne shells didn’t have true or false as built-i commands. true was simply aliased to :
: is slightly better than true for portability.
Uses:
# alias to true
while : ; do command ; done
# variable expansion, assign default value
var=
: ${var:=DEFAULT}
echo $var
DEFAULT