Один вкладыш для установки переменной среды, если не существует, еще добавить
Я использую bash.
Существует переменная среды, которую я хочу либо добавить, если она уже установлена:
PATH=$PATH":/path/to/bin"
Или, если он еще не существует, я хочу просто установить его:
PATH="/path/to/bin"
Есть ли одно выражение для этой строки?
Очевидно, что переменная окружения PATH
почти всегда задана, но проще всего написать этот вопрос.
Ответы
Ответ 1
PATH=${PATH}${PATH:+:}/path/to/bin
-
${PATH}
ничего не оценивает, если PATH
не задано/пусто, иначе оно будет оцениваться по текущему пути
-
${PATH:+:}
не оценивает ничего, если PATH не установлен, в противном случае он оценивается как ":"
Ответ 2
Небольшое улучшение по поводу ответа Майкла Берра. Это работает с set -u
(set -o nounset
):
PATH=${PATH:+$PATH:}/path/to/bin