${var:=padrão}
Como o :-, mas o padrão fica gravado na variável.
Devolve o padrão quando var está vazia ou ausente — e, ao contrário do :-, grava esse padrão na variável. Da segunda leitura em diante, o valor já mora lá.
O idioma clássico usa o comando nulo: : ${CACHE:=/tmp/ninho} atribui sem executar nada. Parâmetros posicionais e especiais ficam de fora — neles não se grava.
$ unset CACHE
$ : ${CACHE:=/tmp/ninho}
$ echo "$CACHE"
/tmp/ninho