bash: 'export: コマンドが見つかりません

bash: 'export: コマンドが見つかりません

新しいターミナルを開くたびに間違いが起きる、

エラー: 「bash: 'export: コマンドが見つかりません」

export all_proxy="" と export ALL_PROXY="" をターミナルにコピーするだけで、新しいターミナルを開くと、状況の画像が表示されます。

これは写真です:

ここに画像の説明を入力してください

次のコマンドを入力します:

grep export ~/.bashrc

出力:

ここに画像の説明を入力してください

次のコマンドを入力します:

env SHELLOPTS=xtrace \
    BASH_XTRACEFD=7 \
    PS4='[${BASH_SOURCE:-$BASH_EXECUTION_STRING}:$LINENO]> ' \
    7> >(grep ‘) bash -l

出力:

ここに画像の説明を入力してください

答え1

.bashrc ファイルを編集したようです。

このエラーを正確に再現するには、

'‘export'        

.bashrcの最後の行として

確認するには、実行してください

grep export ~/.bashrc

grep上記のような出力が返された場合は、~/.bashrc ファイルから編集して削除してください。

編集: 最後の投稿編集から、'export' で始まる 2 行があることがわかります。これらを両方とも ~/.bashrc から削除します。

答え2

そのコマンドをそのままコピー&ペーストしたと仮定すると、U+2018の‘export場所にコマンドが見つからないというエラーが表示されます。左一重引用符'非 ASCII 文字 (ASCIIアポストロフィ/一重引用符 (U+0027) または ASCIIバックティック/アクサングラーブ (U+0060) 文字と混同しないでください`)。

その文字は に対して特別な意味を持たないためbash、次のようなコマンドラインでは、

‘export foo=bar’

U+2019は右の一重引用符です)

‘export引数としてコマンドを実行すると解釈されますfoo=bar’。次のように記述した場合:

'export foo=bar'

代わりに、U+2018 と U+2019 が ASCII アポストロフィに置き換えられます。これはbash引用演算子であるため特別な文字であり、引数なしでコマンドを実行するものとして扱われますexport foo=bar。そのようなコマンドは存在しません。これも必要なことではありません。

あなたが望む

export foo=bar

または

'export' 'foo=bar'

つまり、引数exportを付けてコマンドを実行しますfoo=bar

ここで、U+2018 文字 (および、対応する U+2019 文字がある場合はそれも) を、自分の~/.bashrcまたは他の場所に挿入した場所から削除する必要があります。そのコードをコピーして貼り付けた場所がどこであっても、それらの文字はコピーされることを意図したものではありません。

偽のコマンドが導入された場所を見つけるには~/.bashrc(最新の編集では~/.bashrc確かに導入されていることが示されていますが)、次のコマンドを実行してみてください。

env SHELLOPTS=xtrace \
    BASH_XTRACEFD=7 \
    PS4='[${BASH_SOURCE:-$BASH_EXECUTION_STRING}:$LINENO]> ' \
    7> >(grep ‘) bash -l

(ただし、bash-4.4 以降で$PS4実行されているシェルでは無視されますがroot、これがあなたのケースに当てはまるようです。そのため、++ファイル名と行番号の代わりに が表示されます)。

関連情報