走っている間このスクリプト、エラーが発生しましたこの行(関連スニペットは次のとおりです):
...
_NEW_PATH=$("$_THIS_DIR/conda" ..activate "$@")
if (( $? == 0 )); then
export PATH=$_NEW_PATH
# If the string contains / it's a path
if [[ "$@" == */* ]]; then
export CONDA_DEFAULT_ENV=$(get_abs_filename "$@")
else
export CONDA_DEFAULT_ENV="$@"
fi
# ==== The next line returns an error
# ==== with the message: "export: not valid in this context /Users/avazquez/anaconda3"
export CONDA_ENV_PATH=$(get_dirname $_THIS_DIR)
if (( $("$_THIS_DIR/conda" ..changeps1) )); then
CONDA_OLD_PS1="$PS1"
PS1="($CONDA_DEFAULT_ENV)$PS1"
fi
else
return $?
fi
...
なぜそんなことですか?私が見つけたこのチケットしかし、対応する構文エラーはありません。
答え1
zshではコマンドの置き換え二重引用符で囲まないと、結果に対してトークン化が行われます。したがって、コマンド置換の結果にスペース、タブ、または改行が含まれている場合、エクスポートコマンドはさまざまな部分に分割されます。
$ export a=$(echo 1 -2)
export: not valid in this context: -2
機能するには、二重引用符コマンドの置き換えが必要か、より安全な構文を使用してください。
PATH=$_NEW_PATH; export PATH
でも:
PATH=$_NEW_PATH export PATH
答え2
POSIXの規則に従うには、ここで二重引用符を使用する必要があることを理解しているようです。以下はこれを修正します。
export CONDA_ENV_PATH="$(get_dirname "$_THIS_DIR")"
次の素晴らしい記事が役に立ちます。
答え3
zshrcでエイリアスとしてエクスポートする変数名を追加するのを忘れたときに、これが発生しました。
間違った
export /Library/Java/JavaVirtualMachines/ibm-semeru-openjdk-17.jdk/Contents/Home
いいね:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/ibm-semeru-openjdk-17.jdk/Contents/Home