Bash
添加路徑到磷一個_H我_不推薦_______是我_磷一種噸H一世Fn這噸一種lr和一種d是一世nPATH if not already in小路
我需要在
bash
腳本中添加路徑,但可能會執行多次:export PATH=${OPENSHIFT_HOMEDIR}/app-root/runtime/bin/:${PATH}
我不希望一遍又一遍地添加該路徑。如果它還沒有,我該如何添加它
$PATH
?
首先檢查要添加的路徑是否已經是變數的一部分:
[[ ":$PATH:" != *":/path/to/add:"* ]] && PATH="/path/to/add:${PATH}"
如果
/path/to/add
已經在 中$PATH
,則什麼也不會發生,否則會在開頭添加。如果您最終需要它,請
PATH=${PATH}:/path/to/add
改用它。編輯:在你的情況下,它看起來像這樣:
[[ ":$PATH:" != *":${OPENSHIFT_HOMEDIR}/app-root/runtime/bin:"* ]] && PATH="${OPENSHIFT_HOMEDIR}/app-root/runtime/bin:${PATH}"
我舊實驗室的系統管理員為此提供了一個漂亮的小功能:
pathmunge () { if ! echo "$PATH" | /bin/grep -Eq "(^|:)$1($|:)" ; then if [ "$2" = "after" ] ; then PATH="$PATH:$1" else PATH="$1:$PATH" fi fi }
它會檢查給定的字元串是否已經在 中
PATH
,還允許您根據需要將其添加到末尾或開頭:$ echo $PATH /usr/local/bin:/usr/bin:/bin $ pathmunge /sbin/ ## Add to the start; default $ echo $PATH /sbin/:/usr/local/bin:/usr/bin:/bin $ pathmunge /usr/sbin/ after ## Add to the end $ echo $PATH /sbin/:/usr/local/bin:/usr/bin:/bin:/usr/sbin/
我有這個功能
~/.profile
並用它來修改我的$PATH
.