我的〜/ .bash_profile文件中有一个函数,如下所示:
function foo {
echo "foo"
}
获取.bash_profile文件后,
source ~/.bash_profile
我可以在命令行运行foo:
$ foo
说我想将foo的名称更改为bar
function bar {
echo "foo"
}
我重新获取.bash_profile文件
source ~/.bash_profile
在命令行中似乎可以使用foo
和bar
。这是为什么?如何清除旧的.bash_profile代码内存或存储的位置?
答案 0 :(得分:2)
source
命令只是将执行文件的结果与当前环境合并。没有恢复到以前的状态。
经过这样的改变,大多数人关闭所有现有窗口并打开新窗口:问题解决了;
但是,您可以在获取命令之前删除所有函数(不仅是源文件中包含的函数,而且所有,这可能有点矫枉过正),如下所示:
unset `declare -F | cut -f3 -d" "`
(declare -F
列出了这些函数,只需获取其名称并将其传递给unset
)。
答案 1 :(得分:1)
你需要取消设置foo
unset -f foo
通过采购您的bash配置文件,您基本上只需添加'更多信息,你不会创造一个新的外壳。