2016-11-24 10 views
1

私はそうのように、私の〜/ .bash_profileのファイル内の関数を持っていた:.bash_profileのファイルを調達した後"Unsource" の.bash_profileまたは.bashrcのスクリプト

function foo { 
    echo "foo" 
} 

source ~/.bash_profile 

Iコマンドラインでのfooを実行することができます。

$ foo 

は私が

を棒にFOOの名前を変更したいと言う
function bar { 
    echo "foo" 
} 

とI再ソースの.bash_profileファイル

source ~/.bash_profile 

foobarの両方が、コマンドラインで利用可能であることを表示されます。何故ですか?古い.bash_profileコードをメモリから削除したり、どこに保存しているのかを確認するにはどうすればよいですか?

答えて

1

あなたは、あなたが新鮮なシェルを作成していないより多くの情報」を追加ただ基本的に自分のbashのプロファイルを調達することで解除FOOに

unset -f foo 

を必要としています。

2

sourceコマンドは、実行されたファイルの結果を現在の環境とマージするだけです。以前の状態に戻ることはありません。

このような変更の後、ほとんどの人が既存のすべてのウィンドウを閉じて新しいウィンドウを開きます。このような(多分ビットやり過ぎであるソースのファイルに含まれていないだけではなく、それらのすべて、)

しかし、あなたはあなたのコマンドを調達する前に、すべての機能を削除することができます:

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

declare -Fは機能の一覧を表示し、名前を取得してunsetに渡します)。

関連する問題