2017-04-11 3 views
1

bashでパスを設定するとき、私は変数がまだ設定されていない状況に対して頑強であるように、代替値のパラメータ置換であるplus sign commandを使用するよう教えられました。tcshはbashのunset-variable aware '+'パラメータ置換コマンドに相当しますか?

export LD_LIBRARY_PATH="/new/libray/path/${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" 

そうでない場合はLD_LIBRARY_PATHがすでに設定され、ちょうど/new/libray/path/されている場合LD_LIBRARY_PATH環境変数が/new/libray/path/:$LD_LIBRARY_PATHに設定されているこの方法です。 (これは一般的なパス変数ではあまり重要ではありませんが、$PYTHONPATHのようなプログラム固有のパス変数を扱うときは大きな助けになります)

残念ながら、残念ながら、私はbashの代わりにtcshを使用する必要があります。 tcshのこのbash構成には良い選択肢がありますか?つまり、LD_LIBRARY_PATH/new/libray/path/:$LD_LIBRARY_PATHに設定した場合、LD_LIBRARY_PATHが既に設定されている場合は、それはちょうど/new/libray/path/に設定するのが最善の方法です。

答えて

2

このような機能はありません。 ifを使って変数の存在をテストする必要があります:

if ($?LD_LIBRARY_PATH) then 
    setenv LD_LIBRARY_PATH /new/libray/path/:$LD_LIBRARY_PATH 
else 
    setenv LD_LIBRARY_PATH /new/libray/path/ 
endif 
関連する問題