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

設定されていない場合、先頭のコロンを作成せずにパスのような変数に追加しますか?

PKG_CONFIG_PATHにディレクトリを追加する必要があります 。通常は標準を使用します

export PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:$(pyenv prefix)/lib/pkgconfig

ただし、PKG_CONFIG_PATH 以前に私のシステムに設定されていません。したがって、変数は:で始まります 文字。現在のディレクトリを最初に検索するように指示します。私はそれを望んでいません。私は次のことに決めました

export PKG_CONFIG_PATH=${PKG_CONFIG_PATH}${PKG_CONFIG_PATH:+:}$(pyenv prefix)/lib/pkgconfig

しかし、それはとても醜いようです。もっと良い方法はありますか?変数がすでに設定されている場合にのみ、条件付きでコロンを追加する適切な方法は何ですか?

承認された回答:

${:+}で正しい方向に進んでいます 拡張演算子、少し変更する必要があります:

V=${V:+${V}:}new_V

最初の中括弧は$Vに展開されます および Vのコロン それ以外の場合は、すでに何も設定されていません。これはまさに必要なものです(そして、おそらく演算子が存在する理由の1つでもあります)。

したがって、あなたの場合:

export "PKG_CONFIG_PATH=${PKG_CONFIG_PATH:+${PKG_CONFIG_PATH}:}$(pyenv prefix)/lib/pkgconfig"

Linux
  1. 新しい変数名の一部として変数値を使用して変数を作成しますか?

  2. プロセスが親の環境を継承する場合、なぜエクスポートが必要なのですか?

  3. $なしの変数展開が式で機能するのはなぜですか?

  1. Ssh –パスワードなしでSudoを実行できる場合、Sudoを実行するにはTtyが必要ですか?

  2. Linux – Pythonで「http_proxy」環境変数の設定を解除する方法は?

  3. Tar:サブフォルダーを作成せずに単一のファイルをディレクトリに抽出しますか?

  1. Linux エクスポート コマンドの例 (環境変数の設定方法)

  2. root 権限なしで Python で raw ソケットを作成する

  3. bash から変数をエクスポートして Python で使用する