Змінна 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тримаємо.