1181 votes

Assigner des valeurs par défaut aux variables shell avec une seule commande dans bash

J'ai tout un tas de tests sur des variables dans un script shell bash (3.00) où, si la variable n'est pas définie, elle attribue une valeur par défaut, par exemple:

 if [ -z "${VARIABLE}" ]; then 
    FOO='default'
else 
    FOO=${VARIABLE}
fi
 

Il me semble rappeler qu’il existe une syntaxe pour faire cela dans une ligne, quelque chose qui ressemble à un opérateur ternaire, par exemple:

 FOO=${ ${VARIABLE} : 'default' }
 

(bien que je sache que ça ne marchera pas ...)

Suis-je fou ou quelque chose comme ça existe?

Merci!

2109voto

Andrew McGregor Points 7641

Très proche de ce que vous avez posté, en fait :

Sinon, qui assigne à la VARIABLE ainsi :

529voto

miku Points 63392

Pour les arguments de ligne de commande :

56voto

Michel Points 345

Vous pouvez même utiliser comme valeur par défaut la valeur d’une autre variable

avoir un fichier``

Exécutez `` sortie

Exécutez `` sortie

39voto

ghostdog74 Points 86060

Voir ici au titre de l’expansion de paramètres 3.5.3(shell)

ainsi, dans votre cas

22voto

Rob Wells Points 21714

Puis il y a le moyen d’exprimer votre construction « si » plus laconiquement :

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X