过时的功能保留在 bash 环境中

obsolete function remains in bash enviroment

如果我在 bash 脚本中定义函数,例如 envsetup.sh

function blabla() 
{
  echo "blabla"
}

然后我通过

获取它

. envsetup.sh

我的环境中有blabla函数可以使用。但是,如果我删除此函数并重新获取它,blabla 函数仍然存在。

为什么没有删除?

它仍然是相同的 Bash过程,运行您的envsetup.sh只是修改了那个过程。如果您在那里调用了新的 Bash shell 和 运行 脚本,那么您的函数将不存在。

您可以在 shell 脚本思想中删除该功能。您可以通过以下方式执行此操作:

unset -f blabla