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

如何在Justfile的反引号包裹命令中替换变量

在Justfile中预执行命令并赋值变量的正确写法

Justfile里要实现在target执行前就把命令结果赋值给变量,同时替换变量引用,需要用Just内置的sh函数执行命令,同时注意变量替换的语法,以下是修正后的可运行代码:

MY_DIR := "path/to/my/dir"

# 用sh函数执行命令,{{MY_DIR}}替换变量,:= 表示惰性求值(第一次使用时执行命令)
FIRST_LINE := sh("head -n 1 {{MY_DIR}}/my_file")
SECOND_LINE := sh("head -n 2 {{MY_DIR}}/my_file | tail -n 1")

target1:
  echo "第一行内容:{{FIRST_LINE}}"
  echo "第二行内容:{{SECOND_LINE}}"
  # 这里添加你的具体操作

核心要点

  • 变量替换:Justfile中引用变量必须用{{变量名}},不能用shell的$()语法
  • 命令执行:要把命令结果存到变量里,必须用sh("命令字符串")函数,不能直接用反引号
  • 求值时机控制:
    • 用:=定义:变量会在第一次被调用时才执行命令并赋值(惰性)
    • 用=定义:Justfile加载时就立即执行命令并赋值(提前求值)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 06:42:05