2016-11-24 113 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)。

相關問題