如何在 mkfile 中定义变量的默认值
How can I define the default value for a variable in mkfile
生成文件:
XDG_CONFIG_HOME?=$HOME/.config
我想将该行转换为 Plan9 mkfile 语法。
我试过了
XDG_CONFIG_HOME=`{if(~ $XDG_CONFIG_HOME '') echo $HOME/.config; if not echo $XDG_CONFIG_HOME}
它有效,但它很丑。还有其他选择吗?
在shell中,“:-”用于将变量设置为默认值,以防变量没有值:
XDG_CONFIG_HOME=${XDG_CONFIG_HOME:-$HOME/.config}
mk(1) 不提供这种内置的定义变量的方法,仅当它们不是非空环境变量时。实际上,贝尔实验室的 make(1) 和 POSIX make(1) 都没有提供这样的方法, ?=
语法只是一个 GNU 扩展。
您通常会在 mkfile
中正常设置变量:
XDG_CONFIG_HOME = $home/.config
并覆盖mk(1)命令中的变量:
; mk 'XDG_CONFIG_HOME='^$home^'/cfg'
生成文件:
XDG_CONFIG_HOME?=$HOME/.config
我想将该行转换为 Plan9 mkfile 语法。
我试过了
XDG_CONFIG_HOME=`{if(~ $XDG_CONFIG_HOME '') echo $HOME/.config; if not echo $XDG_CONFIG_HOME}
它有效,但它很丑。还有其他选择吗?
在shell中,“:-”用于将变量设置为默认值,以防变量没有值:
XDG_CONFIG_HOME=${XDG_CONFIG_HOME:-$HOME/.config}
mk(1) 不提供这种内置的定义变量的方法,仅当它们不是非空环境变量时。实际上,贝尔实验室的 make(1) 和 POSIX make(1) 都没有提供这样的方法, ?=
语法只是一个 GNU 扩展。
您通常会在 mkfile
中正常设置变量:
XDG_CONFIG_HOME = $home/.config
并覆盖mk(1)命令中的变量:
; mk 'XDG_CONFIG_HOME='^$home^'/cfg'