我不小心将命令输入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
.