如何理解bash中的“${PATH:+:${PATH}}”?
How to understand "${PATH:+:${PATH}}" in bash?
我在 bash 脚本中看到以下代码:
export PATH=/opt/rh/rh-python38/root/usr/local/bin:/opt/rh/rh-python38/root/usr/bin${PATH:+:${PATH}}
我不明白最后一部分,其中 ${PATH:+:${PATH}}
被操纵了。
是追加:
和$PATH
,但前提是$PATH
是non-empty;否则,不会添加任何内容。
expansion的语法是${<em>参数</em>:+<em>word</em>}
,代表
If parameter
is null or unset, nothing is substituted, otherwise the expansion of word
is substituted.
在您的示例中,word
是 :$PATH
。
${<em>参数</em>:+<em>word</em>}
与${<em>parameter</em>+<em>word</em>}
,其中如果 [=13,则前者不进行任何替换=] 未设置 或 null,后者仅在未设置 parameter
时才替换任何内容(但可以空)。
我在 bash 脚本中看到以下代码:
export PATH=/opt/rh/rh-python38/root/usr/local/bin:/opt/rh/rh-python38/root/usr/bin${PATH:+:${PATH}}
我不明白最后一部分,其中 ${PATH:+:${PATH}}
被操纵了。
是追加:
和$PATH
,但前提是$PATH
是non-empty;否则,不会添加任何内容。
expansion的语法是${<em>参数</em>:+<em>word</em>}
,代表
If
parameter
is null or unset, nothing is substituted, otherwise the expansion ofword
is substituted.
在您的示例中,word
是 :$PATH
。
${<em>参数</em>:+<em>word</em>}
与${<em>parameter</em>+<em>word</em>}
,其中如果 [=13,则前者不进行任何替换=] 未设置 或 null,后者仅在未设置 parameter
时才替换任何内容(但可以空)。