Переменная 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держим.