oli*_*bre 10 bash gnu-make variable-expansion
(编辑:基于@Michael反馈的问题更准确)
在bash中,我经常使用参数扩展:以下命令default value在$VARNAME未设置时打印" " ,否则打印VARNAME内容.
echo ${VARNAME:-default value} #if VARNAME empty => print "default value"
echo ${VARNAME-default value} #if VARNAME empty => print "" (VARNAME string)
Run Code Online (Sandbox Code Playgroud)
我没有在GNU上找到类似的功能make.我终于在我写的Makefile:
VARNAME ?= "default value"
all:
echo ${VARNAME}
Run Code Online (Sandbox Code Playgroud)
但我对这个解决方案不满意:它总是创建变量VARNAME,这可能会改变某些makefile上的行为.
有没有更简单的方法来获取未设置变量的默认值?
Mad*_*ist 17
如果你想使用GNU make变量的扩展(如果它是非空的)和默认值(如果它是空的,但是没有设置变量),你可以这样做:
all:
echo $(or $(VARNAME),default value)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3731 次 |
| 最近记录: |