生成文件:
XDG_CONFIG_HOME?=$HOME/.config
我想将该行转换为 Plan9 mkfile 语法。
我试过了
XDG_CONFIG_HOME=`{if(~ $XDG_CONFIG_HOME '') echo $HOME/.config; if not echo $XDG_CONFIG_HOME}
它有效,但很丑陋。有什么选择吗?
只有当变量不是非空环境变量时, mk (1) 才提供这种定义变量的内置方式。实际上,贝尔实验室的任何make (1) 和 POSIX make (1) 都没有提供这样的方法来做到这一点,?=
语法只是一个 GNU 扩展。
您通常会做的是mkfile
正常设置变量:
XDG_CONFIG_HOME = $home/.config
并覆盖mk (1) 命令中的变量:
; mk 'XDG_CONFIG_HOME='^$home^'/cfg'
In shell, ":-" is used to set a variable to a default value in case the variable has no value:
XDG_CONFIG_HOME=${XDG_CONFIG_HOME:-$HOME/.config}