Переменная BUILDNUMBER
установлена в значение 230. Я ожидаю, 230_
что будет напечатан для команды, echo $BUILDNUMBER_
но вывод пуст, как показано ниже.
# echo $BUILDNUMBER_
# echo $BUILDNUMBER
230
Переменная BUILDNUMBER
установлена в значение 230. Я ожидаю, 230_
что будет напечатан для команды, echo $BUILDNUMBER_
но вывод пуст, как показано ниже.
# echo $BUILDNUMBER_
# echo $BUILDNUMBER
230
Ответы:
Команда echo $BUILDNUMBER_
собирается напечатать значение переменной, $BUILDNUMBER_
которое не установлено (подчеркивание является допустимым символом для имени переменной, как явно отмечено Джеффом Шаллером)
Вам просто нужно применить фигурные скобки (фигурные скобки) вокруг имени переменной или использовать самый жесткий printf
инструмент:
echo "${BUILDNUMBER}_"
printf '%s_\n' "$BUILDNUMBER"
PS: всегда указывайте свои переменные.
Как уже объяснил Джордж Василиу , это потому, что вы печатаете переменную $BUILDNUMBER_
вместо $BUILDNUMBER
. Лучший способ получить то, что вы хотите, это использовать, ${BUILDNUMBER}_
как объяснил Джордж. Вот еще несколько вариантов:
$ echo "$BUILDNUMBER"_
230_
$ echo $BUILDNUMBER"_"
230_
$ printf '%s_\n' "$BUILDNUMBER"
230_
$IFS
держит, поэтому echo $BUILDNUMBER"_"
все еще не прав. Из этих трех только printf '%s_\n' "$BUILDNUMBER"
правильно, если мы не знаем что $BUILDNUMBER
или $IFS
держим.