bash: '導出:找不到指令

bash: '導出:找不到指令

每次打開新終端機都會出錯,

錯誤:“bash:'導出:找不到命令”

我只將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 檔案中編輯出來。

編輯:從您上次的帖子編輯中,您可以看到有 2 行以 'export 開頭,並將它們從 ~/.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'

即運行exportfoo=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一樣運行的 shell 會忽略這些root,這似乎是您的情況,這就是為什麼您看到的++不是檔案名稱和行號)。

相關內容