You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Justfile中利用已有变量拼接赋值新变量?

解决Justfile变量拼接未展开问题

你尝试在Justfile中拼接两个已有变量为新变量,但三种方式均未成功展开变量,原代码及执行输出如下:

原代码

var_a := "hello"
var_b := "world"

var_v1 := "{{var_a}}-{{var_b}}"
var_v2 := `export exp_a={{var_a}}; echo "${exp_a}-{{var_b}}"`
var_v3 := "{{ var_a }}" + "{{ var_b }}"

@default:
  echo var_a: {{var_a}}
  echo var_b: {{var_b}}
  echo var_v1: {{var_v1}}
  echo var_v2: {{ var_v2 }}
  echo var_v3: {{ var_v3 }}

原执行输出

# output of `just default`
var_a: hello
var_b: world
var_v1: {{var_a}}-{{var_b}}
var_v2: {{var_a}}-{{var_b}}
var_v3: {{ var_a }}{{ var_b }}

问题原因

在Justfile的变量赋值语句中,引用已有变量不需要用{{}}包裹——{{}}仅用于在recipe的shell命令中展开变量。你之前的写法错误地在变量赋值时使用了{{}},导致Just将其视为普通字符串,而非变量引用。

正确解决方案

以下是三种可行的变量拼接方式:

方式1:直接使用变量名拼接(推荐)

Just支持直接在变量赋值时将变量、字符串字面量组合,用空格分隔即可完成拼接:

var_v1 := var_a "-" var_b

方式2:使用+运算符拼接

Just提供+运算符用于字符串拼接,适合更清晰表达拼接逻辑:

var_v2 := var_a + "-" + var_b

方式3:通过shell命令拼接

如果需要借助shell逻辑拼接,确保在shell命令中正确展开Just变量(此时需要{{}}):

var_v3 := `echo "{{var_a}}-{{var_b}}"`

修改后的完整代码

var_a := "hello"
var_b := "world"

# 方式1:直接组合
var_v1 := var_a "-" var_b
# 方式2:+运算符
var_v2 := var_a + "-" + var_b
# 方式3:shell命令拼接
var_v3 := `echo "{{var_a}}-{{var_b}}"`

@default:
  echo var_a: {{var_a}}
  echo var_b: {{var_b}}
  echo var_v1: {{var_v1}}
  echo var_v2: {{var_v2}}
  echo var_v3: {{var_v3}}

执行结果

运行just default后会得到预期输出:

var_a: hello
var_b: world
var_v1: hello-world
var_v2: hello-world
var_v3: hello-world

内容的提问来源于stack exchange,提问作者Dexter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 05:52:10