my で宣言した変数はすべてzshrc
、シェルで環境変数として使用できます。私はこれが起こることを望んでいません。
変数を関数に入れてローカルとして設定しようとしましたが、その関数は の外部で使用できますzshrc
。
zshrc で何が起こっても zshrc にとどまるようにするにはどうすればよいですか?
最近のバージョンの zsh を使用している場合は、無名関数を使用できます。
function () {
local xyz=abc
# whatever
}
この関数は自動的に実行されてから破棄されます。スコープの目的でのみ存在します。
これは、zshrc だけでなく、ソース ファイルに対しても機能します。
それらは利用可能ですが、エクスポートされないため、コマンドラインから起動するスクリプトはこれらの変数を取得しません。あなた.zshrc
のように見える場合
function zshrc()
{
local VAR=1
# Do stuff
}
zshrc
zshrc
その後、関数を再度起動したくない場合は、単に行うことができます
unfunction zshrc
その後。