我正在检查一个包含类似以下内容的 bash 脚本:export PATH=${PATH:+$PATH:}/usr/bin 我假设它具有与相同的输出export PATH=$PATH:/usr/bin
。我做了一个echo ${PATH:+$PATH:}
它只输出 $PATH 的值加上一个 ':'。但如果我将其修改为 ${PSOMETHING:+$PATH:},它什么也不输出。
我的问题是使用 $PATH: 和 ${PATH:+$PATH:} 有什么不同?有什么好处?如何理解语法?
答案1
看参数扩展在man bash
:
${parameter:+word}
使用替代值。如果参数为空或未设置,则不替换任何内容,否则将替换单词的扩展。