La variabile BUILDNUMBER
è impostata sul valore 230. Mi aspetto 230_
di essere stampata per il comando echo $BUILDNUMBER_
ma l'output è vuoto come mostrato di seguito.
# echo $BUILDNUMBER_
# echo $BUILDNUMBER
230
La variabile BUILDNUMBER
è impostata sul valore 230. Mi aspetto 230_
di essere stampata per il comando echo $BUILDNUMBER_
ma l'output è vuoto come mostrato di seguito.
# echo $BUILDNUMBER_
# echo $BUILDNUMBER
230
Risposte:
Il comando echo $BUILDNUMBER_
stampa il valore della variabile $BUILDNUMBER_
che non è impostata (il carattere di sottolineatura è un carattere valido per un nome di variabile, come esplicitamente notato da Jeff Schaller)
Hai solo bisogno di applicare parentesi graffe (parentesi graffe) attorno al nome della variabile o utilizzare lo printf
strumento più rigido :
echo "${BUILDNUMBER}_"
printf '%s_\n' "$BUILDNUMBER"
PS: cita sempre le tue variabili.
Come già spiegato da George Vassiliou , è perché stai stampando la variabile $BUILDNUMBER_
anziché $BUILDNUMBER
. Il modo migliore per ottenere quello che vuoi è usare ${BUILDNUMBER}_
come ha spiegato George. Ecco alcune altre opzioni:
$ echo "$BUILDNUMBER"_
230_
$ echo $BUILDNUMBER"_"
230_
$ printf '%s_\n' "$BUILDNUMBER"
230_
$IFS
contiene, quindi echo $BUILDNUMBER"_"
è ancora sbagliato. Dei tre, printf '%s_\n' "$BUILDNUMBER"
è corretto solo se non sappiamo cosa $BUILDNUMBER
o $IFS
tenere.