La variable BUILDNUMBERest 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 BUILDNUMBERest 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' printfoutil 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_
$IFSest vrai, donc echo $BUILDNUMBER"_"c'est toujours faux. Des trois, seulement printf '%s_\n' "$BUILDNUMBER"est correct si nous ne savons pas quoi $BUILDNUMBERou $IFStenir.