Один вкладыш для установки переменной среды, если не существует, еще добавить

Я использую 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