La variable BUILDNUMBER
est définie sur la valeur 230. Je m'attends 230_
à être imprimé pour la commande echo $BUILDNUMBER_
mais la sortie est vide comme indiqué ci-dessous.
# echo $BUILDNUMBER_
# echo $BUILDNUMBER
230
La variable BUILDNUMBER
est définie sur la valeur 230. Je m'attends 230_
à être imprimé pour la commande echo $BUILDNUMBER_
mais la sortie est vide comme indiqué ci-dessous.
# echo $BUILDNUMBER_
# echo $BUILDNUMBER
230
Réponses:
La commande echo $BUILDNUMBER_
va imprimer la valeur de la variable $BUILDNUMBER_
qui n'est pas définie (le soulignement est un caractère valide pour un nom de variable comme indiqué explicitement par Jeff Schaller)
Il vous suffit d'appliquer des accolades (accolades) autour du nom de la variable ou d'utiliser l' printf
outil le plus rigide :
echo "${BUILDNUMBER}_"
printf '%s_\n' "$BUILDNUMBER"
PS: citez toujours vos variables.
Comme George Vassiliou l'a déjà expliqué , c'est parce que vous imprimez la variable $BUILDNUMBER_
au lieu de $BUILDNUMBER
. La meilleure façon d'obtenir ce que vous voulez est d'utiliser ${BUILDNUMBER}_
comme George l'a expliqué. Voici quelques options supplémentaires:
$ echo "$BUILDNUMBER"_
230_
$ echo $BUILDNUMBER"_"
230_
$ printf '%s_\n' "$BUILDNUMBER"
230_
$IFS
est vrai, donc echo $BUILDNUMBER"_"
c'est toujours faux. Des trois, seulement printf '%s_\n' "$BUILDNUMBER"
est correct si nous ne savons pas quoi $BUILDNUMBER
ou $IFS
tenir.