bash: 'エクスポート: コマンドが見つかりません

bash: 'エクスポート: コマンドが見つかりません

新しい端末を開くたびにエラーが発生します。

エラー: "bash: 'エクスポート: コマンドが見つかりません。"

ただエクスポート all_proxy="" をコピーして 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 and Removal them from ~/.bashrc」で始まる2行があることがわかります。

答え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。これはあなたの場合のようです。したがって、++ファイル名の代わりにファイル名と行番号が表示されます。)

関連情報