338

/home/david/pear/binzshを使用していて、変数に新しいエントリ()を追加しようとしていPATHますが、方法がわかりません。

私を最も混乱させるのは、ファイル内にPATH変数への単一の参照がないということですが、実行すると次のようになります。~/.zshrcecho $PATH

/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

そのため、PATH変数がどこかに設定されています。

4

8 に答える 8

416

実際、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 :
于 2013-08-06T10:41:27.553 に答える
331

.zshrcここで、この行を次のように追加します。

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

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

于 2012-07-17T20:15:05.857 に答える
83

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

path+=/some/new/bin/dir

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

(セパレータとして必要ない/必要ない:ことに注意してください。)

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

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

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

一般的な構成の使用法

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

関連する情報

pathこのように(配列として)扱うことは、次のことも意味します。新しくパスされたコマンドを見つけるためにを実行する必要はありません 。rehash

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

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

重複したエントリを取得しないようPATHにすることもできます(これこれ を参照してください )。

typeset -U path

事前入力されたPATH

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

于 2015-06-11T22:11:39.757 に答える
53

~/.zshrcファイルを開かずに1つのライナー

echo -n 'export PATH=~/bin:$PATH' >> ~/.zshrc

また

echo -n 'export PATH=$HOME/bin:$PATH' >> ~/.zshrc

効果を確認するにはsource ~/.zshrc、同じタブで実行するか、新しいタブを開きます

于 2017-12-13T14:26:38.913 に答える
29
  1. 〜/.zshrcへのパスを追加

    sudo vi ~/.zshrc

    新しいパスを追加

    export PATH="$PATH:[NEW_DIRECTORY]/bin"
    
  2. 〜/.zshrcを更新します

    〜/.zshrcを保存

    source ~/.zshrc

  3. パスを確認してください

    echo $PATH

于 2019-07-10T03:43:44.993 に答える
20

オプション1:この行を〜/ .zshrcに追加します:

export "PATH=$HOME/pear/bin:$PATH"

その後source ~/.zshrc、変更を有効にするために実行するか、このウィンドウを閉じて新しいウィンドウを開く必要があります

オプション2:ターミナルコンソール内で実行して、このパスを現在のターミナルウィンドウセッションにのみ追加します。ウィンドウ/セッションを閉じると、失われます。

于 2018-05-08T12:12:08.650 に答える
1

私のためにPATH=$PATH:/path/to/file/bin それからexport PATH働いた。チェックするecho $PATH。他のソリューションは一時的にパスを追加しています。

于 2021-10-30T13:26:12.547 に答える
0

新しいディレクトリが正しく追加されたことを確認するには、次を使用できます。

print -l $path

その型が配列であることが知られているという事実のおかげで

于 2022-01-29T10:06:45.443 に答える