${paramètre:=mot} Attribuer Des Valeurs Par Défaut. Si le paramètre n'est pas défini ou nulle, l' l'expansion de parole est attribué à le paramètre. La valeur du paramètre est ensuite substitué. De position paramètres et spécial les paramètres ne peuvent pas être affectés à de cette façon.
Je pensais que je pouvais utiliser cette fonction pour écrire
${A:=hello}
au lieu de le plusA=${A:-hello}
, mais maintenant, bash essaie également d'exécuter des "bonjour" et qui donne une commande introuvable. Un moyen d'éviter cela? Ou vais-je devoir s'en tenir à ce dernier? Quelqu'un peut-il donner un exemple où l'assigner par défaut est réellement utile?
Réponses
Trop de publicités?
SiegeX
Points
32614
L'extension du paramètre de valeur par défaut est souvent utile dans les scripts de construction, comme dans l'exemple ci-dessous. Si l'utilisateur appelle simplement le script tel quel, perl ne sera pas intégré. L'utilisateur doit explicitement définir WITH_PERL
sur une valeur autre que "non" pour qu'il soit intégré.
$ cat defvar.sh
#!/bin/bash
WITH_PERL=${WITH_PERL:-no}
if [[ "$WITH_PERL" != no ]]; then
echo "building with perl"
# ./configure --enable=perl
else
echo "not building with perl"
# ./configure
fi
Construire sans Perl
$ ./defvar.sh
not building with perl
Construire avec Perl
$ WITH_PERL=yes ./defvar.sh
building with perl