GNU/Linux >> Linux の 問題 >  >> Linux

ZSH の PATH 変数に新しいエントリを追加する

ここで、この行を .zshrc に追加します :

export PATH=/home/david/pear/bin:$PATH

編集 :これは機能しますが、ZSH が $PATH のような変数に提供する構造化されたインターフェイスを利用するため、上記の唯一の回答の方が優れています。 .このアプローチは bash の標準です 、しかし、私の知る限り、ZSH がより良い代替手段を提供している場合、それを使用する理由はありません。


実際、ZSH を使用すると、環境変数の特別なマッピングを使用できます。したがって、次のように簡単に実行できます:

# append
path+=('/home/david/pear/bin')
# or prepend
path=('/home/david/pear/bin' $path)
# export to sub-processes (make it inherited by child processes)
export PATH

私にとって、これは他の変数に伝播できる非常に優れた機能です。例:

typeset -T LD_LIBRARY_PATH ld_library_path :

追加できます あなたの PATH に 最小限の方法で。複数の要素を追加する場合を除き、括弧は必要ありません。また、通常、引用符は必要ありません。 追加する簡単で短い方法 です:

path+=/some/new/bin/dir

この小文字の構文は path を使用しています 配列として 、さらに大文字のパートナー PATH にも影響します。 (typeset 経由で「バインド」されます) ).

(: がないことに注意してください 区切りとして必要/希望 .)

一般的なインタラクティブな使用法

次に、新しいスクリプト/実行可能ファイルをテストするための一般的なパターンは次のようになります:

path+=$PWD/.
# or
path+=$PWD/bin

一般的な構成の使用法

.zshrc の周りにパス設定を振りかけることができます (上記のように)、自然に先にリストされた設定が優先されます。 (ただし、「プリペンド」フォーム path=(/some/new/bin/dir $path) を使用したい場合もあります) ).

関連情報

path を処理しています この方法 (配列として) は、次のことも意味します:rehash を行う必要はありません 新しくパスされたコマンドを取得します。

vared path も見てください。 path を編集する動的な方法として (およびその他のもの)

path だけに興味があるかもしれません この質問については、エクスポートと配列について話しているため、通常、配列はエクスポートできないことに注意してください。

PATHも防ぐことができます 重複したエントリーを受け付けないようにする (これとこれを参照):

typeset -U path

事前入力された PATH

パスにすでにいくつかのエントリが含まれている理由は、システム シェル ファイルがパスを設定しているためです。これについては、他のいくつかの投稿で説明しています:

  • $PATH 環境変数が設定される理由と場所は?
  • $PATH のソースはどこですか? .zshrc に見つかりません

Linux
  1. ubuntuで$PATH変数を永続的に設定する2つの方法

  2. Linuxで$Path変数を設定する方法

  3. Linux で PATH 変数を変更する方法

  1. パスのマウントポイントを与える

  2. Bash でパス変数の要素をループする

  3. $PATH 変数から冗長なパスを削除します

  1. 新しいPodmanシークレットコマンドの探索

  2. .pro ファイルで使用できる Qt インストール パス変数はありますか?

  3. PATH環境変数で相対パスを使用することのセキュリティへの影響は?