Замена переменной в Bash с последующим подчеркиванием

Замена переменной в Bash с последующим подчеркиванием

Переменной BUILDNUMBERприсвоено значение 230. Я ожидаю 230_вывода команды, echo $BUILDNUMBER_но вывод пуст, как показано ниже.

# echo $BUILDNUMBER_

# echo $BUILDNUMBER
230

решение1

Команда echo $BUILDNUMBER_выведет значение переменной $BUILDNUMBER_, которая не задана (подчеркивание является допустимым символом для имени переменной, как явно отметил Джефф Шаллер).

Вам просто нужно заключить имя переменной в фигурные скобки или использовать самый жесткий printfинструмент:

echo "${BUILDNUMBER}_"
printf '%s_\n' "$BUILDNUMBER"

PS: Всегда заключайте переменные в кавычки.

решение2

Как уже сказал Джордж Василиуобъяснил, это потому, что вы печатаете переменную $BUILDNUMBER_вместо $BUILDNUMBER. Лучший способ получить то, что вам нужно, — использовать ${BUILDNUMBER}_то, что объяснил Джордж. Вот еще несколько вариантов:

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

Связанный контент