2017-04-11 32 views
1

在bash中設置路徑時,我被教導使用plus sign command替代值參數替換,以便在變量尚未設置的情況下可靠。tcsh等價於bash的未設置變量的'+'參數替換命令?

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

這樣的LD_LIBRARY_PATH環境變量設置爲/new/libray/path/:$LD_LIBRARY_PATH如果LD_LIBRARY_PATH已經設置,只是/new/libray/path/如果事實並非如此。 (這在通用路徑變量中不太重要,但在使用程序特定的路徑變量時非常有用,例如$PYTHONPATH。)

不幸的是,我處於需要使用tcsh而不是bash的情況。在tcsh中,這個bash構造是否有很好的選擇?也就是說,如果已經設置了LD_LIBRARY_PATH,並且設置爲/new/libray/path/(如果不存在錯誤),那麼將LD_LIBRARY_PATH設置爲 /new/libray/path/:$LD_LIBRARY_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