sco*_*tbb 15 bash variable-substitution
我需要将目录附加到PKG_CONFIG_PATH
. 通常,我会使用标准
export PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:$(pyenv prefix)/lib/pkgconfig
Run Code Online (Sandbox Code Playgroud)
但PKG_CONFIG_PATH
之前没有在我的系统上设置。因此,变量以一个:
字符开头,它告诉它首先在当前目录中查找。我不要那个。我解决了以下问题,
export PKG_CONFIG_PATH=${PKG_CONFIG_PATH}${PKG_CONFIG_PATH:+:}$(pyenv prefix)/lib/pkgconfig
Run Code Online (Sandbox Code Playgroud)
但这看起来太丑了。有没有更好的办法?当且仅当变量已经设置时,有条件地附加冒号的适当方法是什么?
pet*_*rph 17
您使用${:+}
扩展运算符走在正确的轨道上,您只需要稍微修改它:
V=${V:+${V}:}new_V
Run Code Online (Sandbox Code Playgroud)
第一个大括号扩展为$V
,并且冒号 iffV
已经设置为空 - 这正是您所需要的(并且可能也是运算符存在的原因之一)。
因此,在您的情况下:
export "PKG_CONFIG_PATH=${PKG_CONFIG_PATH:+${PKG_CONFIG_PATH}:}$(pyenv prefix)/lib/pkgconfig"
Run Code Online (Sandbox Code Playgroud)