新しい端末を開くたびにエラーが発生します。
エラー: "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
。これはあなたの場合のようです。したがって、++
ファイル名の代わりにファイル名と行番号が表示されます。)