${PATH:+$PATH:} 在 bash 脚本中是什么意思?

Fiv*_*eep 2 bash

我正在检查一个 bash 脚本,其中包含以下内容: export PATH=${PATH:+$PATH:}/usr/bin 我假设它的输出与export PATH=$PATH:/usr/bin. 我做了一个echo ${PATH:+$PATH:}它只是输出 $PATH 的值加上一个':'。但如果我将其修改为 ${PSOMETHING:+$PATH:},它不会输出任何内容。

我的问题是使用 $PATH: 和 ${PATH:+$PATH:} 有什么不同?有什么好处吗?如何理解语法?

cho*_*oba 7

参见参数扩展man bash

${parameter:+word}
Run Code Online (Sandbox Code Playgroud)

使用替代值。如果参数为空或未设置,则不替换任何内容,否则替换单词的扩展。