J'ai lu ce qui suit dans le Guide de l'utilisateur du Z-Shell :
Un synonyme de 'true' est ':'; il est souvent utilisé sous cette forme pour donner des arguments qui ont des effets secondaires mais qui ne devraient pas être utilisés - quelque chose comme
: ${param:=value}
qui est un idiome commun dans tous les dérivés Bourne Shell. Dans le paramètre expansion,
$param
est donnée la valeur valeur si elle était vide auparavant, et laissée seule sinon. Comme c'était la seule raison du développement du paramètre, vous utilisez:
pour ignorer l'argument. En fait, le shell construit allègrement la ligne de commande - les deux points, suivis de la valeur de$param
is, que l'affectation ait eu lieu ou non - exécute ensuite la commande; il se trouve que ':' ne prend pas en compte les arguments qui lui ont été donnés.
mais je ne le comprends pas. Je reçois que des :
moyens true
, mais il y a deux dans l'expression côlons. Comme question mineure, pourquoi cet idiome est-il tellement utilisé dans tous les dérivés de Bourne Shell? A quoi est-ce que ça sert?
Note: Je suis intéressé par ce que cet idiome fait à la fois en bash et en zsh .
Merci
zsh
oubash
?