Leí lo siguiente en la Guía del usuario de Z-Shell :
Un sinónimo de 'verdadero' es ':'; a menudo se usa en esta forma para dar argumentos que tienen efectos secundarios pero que no deberían usarse, algo así como
: ${param:=value}
que es un idioma común en todos los derivados de shell Bourne. En la expansión del parámetro,
$param
se le da el valor del valor si antes estaba vacío y, de lo contrario, se deja solo. Dado que esa era la única razón para la expansión del parámetro, solía:
ignorar el argumento. En realidad, el shell construye alegremente la línea de comando (los dos puntos, seguidos del valor que$param
sea, independientemente de si la asignación se realizó o no) y luego ejecuta el comando; da la casualidad de que ':' no tiene en cuenta los argumentos que se le dieron.
Pero no lo entiendo. Entiendo que :
significa true
, pero hay dos puntos en la expresión. Como una pregunta menor, ¿por qué este lenguaje se usa tanto en todos los derivados de shell Bourne? ¿Para qué sirve?
Nota: Estoy interesado en lo que hace este modismo tanto en bash como en zsh .
Gracias
zsh
obash
?