なぜターミナルは「-bash:export: `PATH; ':無効な識別子である」と文句を言うのですか?


0

ターミナルを起動するとエラーが出ます

-bash:export: `PATH; ':無効な識別子です

どうして?

私は2つのファイルを調べました おもう bashは起動時に使います、そして私は問題を見ることができません:

/ etc / profile

# System-wide .profile for sh(1)  

if [ -x /usr/libexec/path_helper ]; then  
        eval `/usr/libexec/path_helper -s`  
fi  

if [ "${BASH-no}" != "no" ]; then  
        [ -r /etc/bashrc ] && . /etc/bashrc  
fi  

〜/ .bash_profile

export PATH="$PATH:/usr/local/autoconf/bin"  
export PATH="$PATH:/usr/local/automake/bin"  
export VISUAL=vscodeeval $(/usr/libexec/path_helper -s)  

(N.B.ファイル /usr/libexec/path_helper バイナリです /etc/bashrc テキスト 'PATH'は含まれません。

エラーはどこから来ていますか?見えない PATH; どちらのスタートアッププロファイルでも、末尾のセミコロンを使用します。


bash_profileの最後の行で何を達成しようとしていますか?
fd0

私は違います、私はそれがすぐに使えるプロファイルだと思います。少なくともどれも私にはなじみがありません。
dumbledad

しかし、その行を削除すると問題は解決します。ありがとう。それが何を追加したのだろうか。
dumbledad

これをVS Codeの問題として追加しました ここに 念のため。
dumbledad

回答:


3

の出力を見てください path_helper -s

$ /usr/libexec/path_helper -s
PATH="..."; export PATH;

(に割り当てられた実際の値 PATH 重要ではありません。私はここでそれを取り除きました。

出力はで実行されることを意図しています evalにあるように、 /etc/profile。目的は、初期値を提供することです。 PATH 変数を選択し、名前にexport属性を設定します。

あなたに .bash_profile不必要にそれを実行している 再び しかし、誤って出力を追加の引数として使用することもできます。 export コマンド。この線

export VISUAL=vscodeeval $(/usr/libexec/path_helper -s) 

として扱われる

export VISUAL=vscodeeval PATH="..."; export PATH;

セミコロンを除いてリテラル文字として扱われ、コマンドターミネータではありません。そのため、次のことを試みます。

  1. セット VISUALvscodeval そしてexport属性をonに設定します。 VISUAL。それで大丈夫です。

  2. セット PATH 初期値(セミコロンで終わっていて、それはあなたが望むものではないでしょうが、構文的には問題ではありません)に設定し、そのexport属性を設定します。

  3. という名前の変数にexport属性を設定します。 export。不要ですが、エラーではありません。

  4. という名前の変数にexport属性を設定します。 PATH;。これはあなたのエラーです。変数名には ;

修正は単に削除することです。 $(/usr/libexec/path_helper -s) あなたから .bash_profile;それはから一度だけ実行される必要があります /etc/profile


2

fd0のコメントを答えに変えるためだけに、私の〜/ .bash_profileファイルの問題のある行は最後のものです。

export VISUAL=vscodeeval $(/usr/libexec/path_helper -s)  

その行を削除すると問題が解決し、悪影響がないように見えます。残念ながら、それがそこにあった理由を思い出すことも解決することもできません。


2
あなたはおそらく後に改行を持つべきです VISUAL=vscodeeval
tripleee
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.