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

$ pathにきれいに追加する方法は?

同じパスを複数回追加することなく、システム全体または個々のユーザー向けに$PATHに追加する方法が必要です。

これを実行する理由の1つは、.bashrcで追加できるようにするためです。 、ログインを必要とせず、lightdmを使用するシステムでもより便利です(例:) 、.profileを呼び出すことはありません 。

$ PATHから重複を削除する方法に関する質問を知っていますが、重複を削除したくないパスがまだ存在しない場合にのみパスを追加する方法を教えてください。

承認された回答:

追加する新しいパスは次のとおりです。

new=/opt/bin

次に、任意のPOSIXシェルを使用して、newかどうかをテストできます。 はすでにパスにあり、そうでない場合は追加します:

case ":${PATH:=$new}:" in
    *:"$new":*)  ;;
    *) PATH="$new:$PATH"  ;;
esac

コロンの使用に注意してください。コロンがないと、たとえばnew=/binと考えるかもしれません。 /usr/binでパターンが一致したため、すでにパスに含まれていました 。 PATHには通常多くの要素がありますが、PATH内の0個と1個の要素の特殊なケースも処理されます。 PATHが最初に要素を持たない(空である)場合は、${PATH:=$new}を使用して処理されます。 PATHを割り当てます $newへ 空の場合。この方法でパラメータのデフォルト値を設定することは、すべてのPOSIXシェルの機能です。POSIXドキュメントのセクション2.6.2を参照してください。)

呼び出し可能な関数

便宜上、上記のコードを関数に入れることができます。この関数はコマンドラインで定義するか、永続的に使用できるようにするために、シェルの初期化スクリプトに組み込むことができます(bashユーザーの場合は~/.bashrc ):

pupdate() { case ":${PATH:=$1}:" in *:"$1":*) ;; *) PATH="$1:$PATH" ;; esac; }

このパス更新機能を使用して、現在のPATHにディレクトリを追加するには:

pupdate /new/path

Linux
  1. LinuxでPATHにディレクトリを追加する方法[例付き]

  2. phpMyAdminで複数のホストを追加する方法

  3. Linuxでユーザーをグループに追加する方法

  1. `sudo`に$pathを保持させる方法は?

  2. LinuxでChromedriverをPATHに追加するには?

  3. updateb (locate) 検索パスに特定のディレクトリを追加する方法は?

  1. Yumリポジトリを追加する方法

  2. パスをパスに正しく追加する方法は?

  3. Linux – Lddがパスを見つけられない、追加する方法は?