Makefile:
XDG_CONFIG_HOME?=$HOME/.config
我想将行转换为Plan9 mkfile语法。
我尝试过
XDG_CONFIG_HOME=`{if(~ $XDG_CONFIG_HOME '') echo $HOME/.config; if not echo $XDG_CONFIG_HOME}
它有效,但是很丑。还有其他选择吗?
答案 0 :(得分:1)
mk (1)仅当变量不是非空环境变量时,才提供这种内置的变量定义方式。实际上,Bell Labs的任何 make (1)或POSIX make (1)都没有提供这种方法,?=
语法只是GNU扩展名。
通常要做的是在mkfile
中正常设置变量:
XDG_CONFIG_HOME = $home/.config
并覆盖 mk (1)命令中的变量:
; mk 'XDG_CONFIG_HOME='^$home^'/cfg'
答案 1 :(得分:0)
在外壳中,“:-”用于将变量设置为默认值,以防该变量没有值:
XDG_CONFIG_HOME=${XDG_CONFIG_HOME:-$HOME/.config}