La variable BUILDNUMBERse establece en el valor 230. Espero que 230_se imprima para el comando, echo $BUILDNUMBER_pero la salida está vacía como se muestra a continuación.
# echo $BUILDNUMBER_
# echo $BUILDNUMBER
230
La variable BUILDNUMBERse establece en el valor 230. Espero que 230_se imprima para el comando, echo $BUILDNUMBER_pero la salida está vacía como se muestra a continuación.
# echo $BUILDNUMBER_
# echo $BUILDNUMBER
230
Respuestas:
El comando echo $BUILDNUMBER_imprimirá el valor de la variable $BUILDNUMBER_que no está establecida (el guión bajo es un carácter válido para un nombre de variable como lo señala Jeff Schaller explícitamente)
Solo necesita aplicar llaves (llaves) alrededor del nombre de la variable o usar la printfherramienta más rígida :
echo "${BUILDNUMBER}_"
printf '%s_\n' "$BUILDNUMBER"
PD: Siempre cita tus variables.
Como ya explicó George Vassiliou , es porque está imprimiendo la variable en $BUILDNUMBER_lugar de $BUILDNUMBER. La mejor manera de obtener lo que quieres es usar ${BUILDNUMBER}_como explicó George. Aquí hay algunas opciones más:
$ echo "$BUILDNUMBER"_
230_
$ echo $BUILDNUMBER"_"
230_
$ printf '%s_\n' "$BUILDNUMBER"
230_
$IFScontiene, por echo $BUILDNUMBER"_"lo que todavía está mal. De los tres, solo printf '%s_\n' "$BUILDNUMBER"es correcto si no sabemos qué $BUILDNUMBERo qué $IFS.