如果不存在,则设置环境变量的一个班轮,否则追加

Che*_*tah 16 unix bash shell

我正在使用bash.

如果已经设置了一个环境变量,我想要追加它:

PATH=$PATH":/path/to/bin"

或者,如果它还不存在,我想简单地设置它:

PATH="/path/to/bin"

这是否有一行声明?

显然PATH环境变量几乎总是设置,但最简单的问题就是这样写.

spb*_*ick 20

Michael Burr的答案略有改进.这适用于set -u(set -o nounset):

PATH=${PATH:+$PATH:}/path/to/bin
Run Code Online (Sandbox Code Playgroud)


Mic*_*urr 19

PATH=${PATH}${PATH:+:}/path/to/bin
Run Code Online (Sandbox Code Playgroud)
  • ${PATH}如果PATH未设置/为空,则求值为空,否则求值为当前路径
  • ${PATH:+:} 如果未设置PATH则评估为空,否则评估为":"

  • 此语法称为 Shell 参数扩展,有关此功能的完整文档可以在 [手册页](https://www.gnu.org/software/bash/manual/bashref.html#Shell-Parameter-Expansion) 中找到。 (2认同)