Li o seguinte no Guia do Usuário do Z-Shell :
Um sinônimo para 'true' é ':'; é frequentemente usado neste formulário para fornecer argumentos que têm efeitos colaterais, mas que não devem ser usados - algo como
: ${param:=value}
que é um idioma comum em todos os derivados de shell Bourne. Na expansão do parâmetro,
$param
é dado o valor value se ele estava vazio antes e deixado sozinho caso contrário. Como esse foi o único motivo da expansão do parâmetro, você usa:
para ignorar o argumento. Na verdade, o shell constrói alegremente a linha de comando - os dois pontos, seguidos de qualquer valor que$param
seja, independentemente de a atribuição ter acontecido ou não - e depois executa o comando; acontece que ':' não toma conhecimento dos argumentos que foram apresentados.
mas eu não entendo isso. Recebo que :
meios true
, mas há dois dois pontos na expressão. Como uma questão menor, por que esse idioma é usado tanto em todos os derivados de shell Bourne? Que finalidade serve?
Nota: Estou interessado no que esse idioma faz no bash e no zsh .
obrigado
zsh
oubash
?