Bash variable substitution of variable followed by underscore
The command echo $BUILDNUMBER_
is going to print the value of variable $BUILDNUMBER_
which is not set (underscore is a valid character for a variable name as explicitly noted by Jeff Schaller)
You just need to apply braces (curly brackets) around the variable name or use the most rigid printf
tool:
echo "${BUILDNUMBER}_"
printf '%s_\n' "$BUILDNUMBER"
PS: Always quote your variables.
As George Vassiliou already explained, that's because you're printing the variable $BUILDNUMBER_
instead of $BUILDNUMBER
. The best way to get what you want is to use ${BUILDNUMBER}_
as George explained. Here are some more options:
$ echo "$BUILDNUMBER"_
230_
$ echo $BUILDNUMBER"_"
230_
$ printf '%s_\n' "$BUILDNUMBER"
230_