1 Je suis tombé sur un fichier bash qui a quelque chose comme ça MYVAR := SomeVal Je sais qu'après avoir lu des tutoriels, vous définissez des valeurs en tant que telles MYVAR = SomeVal Quelle est la différence entre les deux ci-dessus? bash MistyD la source 1 Vous devez savoir que vous ne mettez pas d'espaces autour de l'opérateur d'affectation. Krowe Êtes-vous sûr que ce n'était pas un Makefile? Michał Politowski Réponses: 3 Vous avez probablement vu une extension de paramètre pour définir une valeur par défaut. La différence est de savoir si la variable est non définie ou est définie avec une valeur null: quand la variable est non définie, il n'y a pas de différence $ unset MYVAR; : ${MYVAR:=SomeVal}; echo "$MYVAR" SomeVal $ unset MYVAR; : ${MYVAR=SomeVal}; echo "$MYVAR" SomeVal quand la variable a une valeur, il n'y a pas de différence $ MYVAR="foo"; : ${MYVAR:=SomeVal}; echo "$MYVAR" foo $ MYVAR="foo"; : ${MYVAR=SomeVal}; echo "$MYVAR" foo quand la variable a une valeur nulle: $ MYVAR=""; : ${MYVAR:=SomeVal}; echo "$MYVAR" SomeVal $ MYVAR=""; : ${MYVAR=SomeVal}; echo "$MYVAR" # empty line Glenn Jackman la source
3 Vous avez probablement vu une extension de paramètre pour définir une valeur par défaut. La différence est de savoir si la variable est non définie ou est définie avec une valeur null: quand la variable est non définie, il n'y a pas de différence $ unset MYVAR; : ${MYVAR:=SomeVal}; echo "$MYVAR" SomeVal $ unset MYVAR; : ${MYVAR=SomeVal}; echo "$MYVAR" SomeVal quand la variable a une valeur, il n'y a pas de différence $ MYVAR="foo"; : ${MYVAR:=SomeVal}; echo "$MYVAR" foo $ MYVAR="foo"; : ${MYVAR=SomeVal}; echo "$MYVAR" foo quand la variable a une valeur nulle: $ MYVAR=""; : ${MYVAR:=SomeVal}; echo "$MYVAR" SomeVal $ MYVAR=""; : ${MYVAR=SomeVal}; echo "$MYVAR" # empty line Glenn Jackman la source
Réponses:
Vous avez probablement vu une extension de paramètre pour définir une valeur par défaut.
La différence est de savoir si la variable est non définie ou est définie avec une valeur null:
quand la variable est non définie, il n'y a pas de différence
quand la variable a une valeur, il n'y a pas de différence
quand la variable a une valeur nulle:
la source