Я работал всю свою жизнь в оболочке HPUX/ksh, поэтому bash в наши дни, похоже, предлагает новые способы выполнения многих задач (многие из которых не соответствуют требованиям POSIX - например, 'mkdir -p /root / {abc), def, ghi, jkl} '- по-видимому, это рекомендация по кодированию, лучшая практика в bash / OpenStack - но это совсем другое дело).
В любом случае, я видел такой вид выполнения скрипта в нескольких местах в коде OpenStack:
ENABLE_VCENTER=true bash /root/stack_install.sh
Может кто-нибудь объяснить, как это работает - я знаю, что оболочка установит переменную и затем вызовет сценарий оболочки (что объясняет классическую ошибку nooB, почему назначение переменных не должно быть с пробелами - например. ПРИВЕТ = мир). Но что именно происходит внутри?
Кроме того, почему это не работает для меня, когда я пытаюсь эту команду:
HELLO=world echo $HELLO
Я получаю следующий вывод из оболочки:
[ ubuntuOne : /home/bumblebee ]
> HELLO=world echo $HELLO
[ ubuntuOne : /home/bumblebee ]
>
Что мне здесь не хватает?
Спасибо за ваши ответы.