39

my で宣言した変数はすべてzshrc、シェルで環境変数として使用できます。私はこれが起こることを望んでいません。

変数を関数に入れてローカルとして設定しようとしましたが、その関数は の外部で使用できますzshrc

zshrc で何が起こっても zshrc にとどまるようにするにはどうすればよいですか?

4

4 に答える 4

44

最近のバージョンの zsh を使用している場合は、無名関数を使用できます。

function () {
  local xyz=abc
  # whatever
}

この関数は自動的に実行されてから破棄されます。スコープの目的でのみ存在します。

これは、zshrc だけでなく、ソース ファイルに対しても機能します。

于 2012-12-02T15:35:20.603 に答える
32

それらは利用可能ですが、エクスポートされないため、コマンドラインから起動するスクリプトはこれらの変数を取得しません。あなた.zshrcのように見える場合

function zshrc()
{
    local VAR=1
    # Do stuff
}
zshrc

zshrcその後、関数を再度起動したくない場合は、単に行うことができます

unfunction zshrc

その後。

于 2012-12-02T11:27:03.863 に答える