Когда использовать скобки при экспорте переменных среды в bash?

Я пытался выяснить, какова цель скобок в переменных среды bash. Например, в приведенном ниже фактическом примере кода, почему в некоторых определениях используется {} по пути, например, export ... = ... / $ {PATH}. Также обратите внимание, что некоторые из определений отличаются: в некоторых используется {$ ECLIPSE_DIR} с $ в скобках; некоторые используют $ {PATH} с $ вне скобок, а некоторые вообще опускают скобки. Этот код обычно работает, хотя иногда отображаются ошибки, подобные показанной внизу (они кажутся временными), и я не уверен, почему такие ошибки появляются только иногда, а не другие.

Каковы общие практики относительно способов включения переменных среды bash, когда следует использовать скобки и в чем разница между помещением $ внутри и снаружи скобок? Кроме того, почему в некоторых строках перед именем переменной стоит «экспорт», а в некоторых нет? В чем здесь разница?

# ECLIPSE
ECLIPSE_DIR=$HOME/eclipse
PATH=${PATH}:{$ECLIPSE_DIR}

# ANT
ANT_HOME=/usr/bin/ant
PATH=${ANT_HOME}/bin:${PATH}
export ANT_HOME PATH

# GRADLE
export GRADLE_HOME=/usr/local/gradle
export PATH=$GRADLE_HOME/bin:$PATH</code>


-bash: export: `/usr/bin/ant/bin:/usr/local/bin:{/Users/me/eclipse}:/usr/bin/scala-2.9.0.1/bin:/usr/local/mysql/bin:/usr/local/bin:{/Users/me/eclipse}': not a valid identifier
10
задан omnilinguist 13 July 2011 в 18:01
поделиться