Die Variable BUILDNUMBER
wird auf den Wert 230 gesetzt. Ich erwarte 230_
, dass sie für den Befehl gedruckt wird, echo $BUILDNUMBER_
aber die Ausgabe ist leer, wie unten gezeigt.
# echo $BUILDNUMBER_
# echo $BUILDNUMBER
230
Die Variable BUILDNUMBER
wird auf den Wert 230 gesetzt. Ich erwarte 230_
, dass sie für den Befehl gedruckt wird, echo $BUILDNUMBER_
aber die Ausgabe ist leer, wie unten gezeigt.
# echo $BUILDNUMBER_
# echo $BUILDNUMBER
230
Antworten:
Der Befehl echo $BUILDNUMBER_
gibt den Wert der $BUILDNUMBER_
nicht festgelegten Variablen aus (der Unterstrich ist ein gültiges Zeichen für einen Variablennamen, wie von Jeff Schaller explizit angegeben).
Sie müssen nur geschweifte Klammern (geschweifte Klammern) um den Variablennamen setzen oder das starrste printf
Werkzeug verwenden:
echo "${BUILDNUMBER}_"
printf '%s_\n' "$BUILDNUMBER"
PS: Zitieren Sie immer Ihre Variablen.
Wie George Vassiliou bereits erklärt hat, liegt dies daran, dass Sie $BUILDNUMBER_
stattdessen die Variable drucken $BUILDNUMBER
. Der beste Weg, um das zu bekommen, was Sie wollen, ist, ${BUILDNUMBER}_
wie George erklärte. Hier sind einige weitere Optionen:
$ echo "$BUILDNUMBER"_
230_
$ echo $BUILDNUMBER"_"
230_
$ printf '%s_\n' "$BUILDNUMBER"
230_
$IFS
gilt, also echo $BUILDNUMBER"_"
ist es immer noch falsch. Von den dreien ist nur printf '%s_\n' "$BUILDNUMBER"
dann richtig, wenn wir nicht wissen, was $BUILDNUMBER
oder $IFS
halten.