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