~/.zshrc
に変数を設定する場合、export
を使用することもできます
export PATH=/some/path
か否か
PATH=/some/path
これらはどのように異なり、どちらを使用すればよいですか?
プログラムをzshから実行してvarを表示する場合は、それをエクスポートします。
パスについては、おそらくエクスポートする必要があります。
の代わりに export PATH=/some/path
おそらく必要ですexport PATH="$PATH:/some/path"
、システムプリセットパスを完全に消去する場合を除きます。
Demureはすでにあなたの特定の質問に答えました。ただし、これはzsh
の質問であり、PATH
についてです。つまり、もう1つポイントがあります。標準変数_$PATH
_のほかに、配列である_$path
_もあります。ここに違いがあります(コロンかどうか...):
_$ print $PATH
/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
$print $path
/bin /usr/bin /usr/local/bin /usr/X11R6/bin
_
両方のバリアントは自動的に同期されます。では、配列を使用する利点は何ですか?
typeset -U path
_を使用して宣言し、「重複する各値の最初の出現のみを保持する」(_man zshbuiltins
_から)。つまり、_~/.zshrc
_を連続的にソースし(変更したか何かのため)、同じ値で何度も混乱しないようにしても、パスはクリーンに保たれます。path+=(/new/path)
を使用して、PATHに新しいディレクトリを追加できます。要素を削除するには、いくつかのトリックを使用する必要があります。 https://stackoverflow.com/q/3435355/2037712 または http://www.zsh.org/mla/users//2005/msg01132.htmlfor i ($path) { print $i # or do something else }
を使用して、PATHの要素を簡単にループできます。最後に、これは私の設定からの抜粋です:
_typeset -U path
path=(/new/path1
/new/path2
$path)
export PATH
_