Ho letto quanto segue nella Guida per l'utente di Z-Shell :
Un sinonimo di "vero" è ":"; è spesso usato in questa forma per dare argomenti che hanno effetti collaterali ma che non dovrebbero essere usati - qualcosa del genere
: ${param:=value}
che è un linguaggio comune in tutti i derivati della shell Bourne. Nell'espansione dei parametri,
$param
viene assegnato il valore se era vuoto prima e lasciato solo in caso contrario. Poiché quello era l'unico motivo per l'espansione del parametro, si usa:
per ignorare l'argomento. In realtà, la shell costruisce allegramente la riga di comando - i due punti, seguiti da qualunque sia il valore di$param
, indipendentemente dal fatto che l'assegnazione sia avvenuta o meno - quindi esegue il comando; succede solo che ':' non si accorge degli argomenti che gli è stato dato.
ma non lo capisco. Capisco che :
significa true
, ma ci sono due due punti nell'espressione. Come domanda minore, perché questo idioma è usato così tanto in tutti i derivati della shell Bourne? A quale scopo serve?
Nota: sono interessato a ciò che fa questo idioma sia in bash che in zsh .
Grazie
zsh
obash
?