0

生成文件:

XDG_CONFIG_HOME?=$HOME/.config

我想将该行转换为 Plan9 mkfile 语法。

我试过了

XDG_CONFIG_HOME=`{if(~ $XDG_CONFIG_HOME '') echo $HOME/.config; if not echo $XDG_CONFIG_HOME}

它有效,但很丑陋。有什么选择吗?

4

2 回答 2

1

只有当变量不是非空环境变量时, mk (1) 才提供这种定义变量的内置方式。实际上,贝尔实验室的任何make (1) 和 POSIX make (1) 都没有提供这样的方法来做到这一点,?=语法只是一个 GNU 扩展。

您通常会做的是mkfile正常设置变量:

XDG_CONFIG_HOME = $home/.config

并覆盖mk (1) 命令中的变量:

    ; mk 'XDG_CONFIG_HOME='^$home^'/cfg'
于 2020-04-19T14:52:04.817 回答
0

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}
于 2019-03-18T09:23:51.087 回答