
我不小心將命令輸入export
到我的控制台模擬器(運行 Bash)中,而不是export -p
,現在所有 bash_completion 腳本都持久地存在於我的環境中,甚至在重新啟動後仍然存在。我想撤銷該操作,但幾個小時後仍無法解決。我在 /etc/bash.bashrc 中找到了它們,但沒有看到它們的來源,並且無論如何仍然無法弄清楚沒有參數如何或為什麼export
會造成如此大的損害。
這是在 Knoppix 下的非 rootknoppix
帳號中。當我的su -
root帳號沒有這樣的問題。
[更新:我不知道我在說什麼。我所說的「環境」是指 Bash 內建函數的輸出set
,這是函數顯示的地方。我應該使用env
.不管怎樣,發生的事情是我一直set
在我的 Makefile 中使用來測試某些值的生成,我很驚訝地突然在輸出中看到所有這些函數。然後重新啟動後,我從命令行檢查,仍然看到它們,沒有想到從 Makefile 中檢查(它們不再顯示,沒有被導出。所以,問題解決了;它們顯然一直在我的set
輸出中,只是沒有'之前沒有註意到它們,直到意外地export
在我的輸出中輸入並看到它們make set
,但 bash 的文檔似乎與行為不匹配;export
沒有名稱應該返回導出變量的列表,而不是導出所有內容。
答案1
您可以列出所有變數env
並使用unset $VARIABLE
它從環境中刪除所有不必要的變量,從而解決您的問題。您必須小心取消設定正確的變量,因為例如,如果取消設定 PATH,您將無法執行任何命令/應用程式。
雖然這不能解釋 bash_completion 腳本出了什麼問題,但它會撤消意外的export
.