Bash sustitución de variable de variable seguida de guión bajo

Bash sustitución de variable de variable seguida de guión bajo

La variable BUILDNUMBERestá configurada en el valor 230. Espero 230_que se imprima para el comando, echo $BUILDNUMBER_pero el resultado está vacío como se muestra a continuación.

# echo $BUILDNUMBER_

# echo $BUILDNUMBER
230

Respuesta1

El comando echo $BUILDNUMBER_imprimirá el valor de la variable $BUILDNUMBER_que no está configurada (el guión bajo es un carácter válido para el nombre de una variable, como lo señaló explícitamente Jeff Schaller)

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: cita siempre tus variables.

Respuesta2

Como ya George Vassiliouexplicado, eso se debe a que estás imprimiendo la variable $BUILDNUMBER_en lugar de $BUILDNUMBER. La mejor manera de conseguir lo que quieres es utilizarlo ${BUILDNUMBER}_como explicó George. Aquí hay algunas opciones más:

$ echo "$BUILDNUMBER"_
230_
$ echo $BUILDNUMBER"_"
230_
$ printf '%s_\n' "$BUILDNUMBER"
230_

información relacionada