2013-04-30 1 views
12

私はbashを使用しています。環境変数を設定するライナーは存在しない場合は1つ、それ以外の場合は

それはすでによう設定されている場合、私はどちらか追加したい環境変数があります:

PATH=$PATH":/path/to/bin"

は、あるいはそうでない場合は、すでに私は単にそれを設定したい存在:

PATH="/path/to/bin"

これを行うには1行の文がありますか?

明らかに、PATH環境変数はほとんど常に設定されていますが、この質問を書くのが最も簡単でした。

答えて

14
PATH=${PATH}${PATH:+:}/path/to/bin 
  • ${PATH}PATHが空/設定されていない場合は、PATHが設定されていない場合は、それ以外の場合は、現在のパスに評価さ
  • ${PATH:+:}がそうでなければ、それが評価され、何に評価され、何にも評価され「:」
+0

この回答を好みます。ありがとう – Cheetah

+0

この構文はシェルパラメータ拡張と呼ばれ、この機能に関する完全なドキュメントは[man page](https://www.gnu.org/software/bash/manual/bashref.html#Shell-Parameter-拡張)。 – davidjb

+0

'setenv'でこれに相当するcshは何ですか? – Spade

16

マイケルバーの答えが少し改善しました。これは、同様に(set -o nounsetset -uで動作します:それはやや明確であるよう

PATH=${PATH:+$PATH:}/path/to/bin 
+0

これに相当するcshとは何ですか? – Spade

関連する問題