使用bash判斷PATH中是否存在某個(gè)路徑
在source設(shè)置環(huán)境變量的時(shí)候,有些時(shí)候可能會(huì)設(shè)置兩次,導(dǎo)致增加系統(tǒng)的路徑搜索時(shí)間,或者讓自己看環(huán)境變量的時(shí)候搞得怪不爽的。
為了解決這個(gè)問題,我們可以在設(shè)置相應(yīng)的環(huán)境變量之前,先判斷一下是否已經(jīng)設(shè)置過,如果設(shè)置過,那就不要在設(shè)置了,如果沒有設(shè)置呢,當(dāng)然你就可以設(shè)置下啦。
我用一個(gè)函數(shù)來判斷參數(shù)2的字符串是否存在與參數(shù)1中
function?isexist() { ????source_str=$1 ????test_str=$2 ???? ????strings=$(echo?$source_str?|?sed?'s/:/?/g') ????for?str?in?$strings ????do?? ????????if?[?$test_str?=?$str?];?then ????????????return?0 ????????fi?? ????done ????return?1 }
所以我們可以用一個(gè)判斷來測試下這個(gè)函數(shù)就行了,
舉個(gè)例子使用下這個(gè)函數(shù),
我想設(shè)置/opt/mpich/3.0.4/bin這個(gè)目錄到環(huán)境變量PATH中??梢赃@樣做
if?isexist?$PATH?/opt/mpich/3.0.4/bin;?then? ??echo?"no?need?to?set?it?..." else? ??export?PATH=/opt/mpich/3.0.4/bin:$PATH fi
OK 了,測試下吧。