2016-11-24 106 views
1

我在〜/ .bash_profile文件中有一个功能,像这样“Unsource” 一个或.bash_profile文件的.bashrc脚本

$ foo 

说我要改变foo的名字吧

:可以在命令行中运行FOO
function bar { 
    echo "foo" 
} 

和我重新源.bash_profile文件

source ~/.bash_profile 

似乎既foobar可在命令行。这是为什么?以及如何清除旧的.bash_profile代码内存不足或存储的位置?

回答

1

您需要取消设置FOO

unset -f foo 

通过获取你的个人资料的bash你基本上只是“增加”的更多信息,你没有创建一个新的外壳。

2

source命令只是将执行文件的结果与当前环境合并。没有恢复到以前的状态。

经过这样的改变,大多数人关闭了所有现有的窗口并打开新窗口:问题解决了;

但是,你可以采购命令之前,删除所有功能(不仅包含在源文件中的,但所有的人都,这也许是有点大材小用)是这样的:

unset `declare -F | cut -f3 -d" "` 

declare -F列出了功能,只是得到他们的名字,并将它们传递给unset)。

相关问题