变量和替换

支持在变量、字符串、拼接、路径连接和替换中使用 {{…}}

tmpdir  := `mktemp`
version := "0.2.7"
tardir  := tmpdir / "awesomesauce-" + version
tarball := tardir + ".tar.gz"

publish:
  rm -f {{tarball}}
  mkdir {{tardir}}
  cp README.md *.c {{tardir}}
  tar zcvf {{tarball}} {{tardir}}
  scp {{tarball}} me@server.com:release/
  rm -rf {{tarball}} {{tardir}}

路径拼接

/ 操作符可用于通过斜线连接两个字符串:

foo := "a" / "b"
$ just --evaluate foo
a/b

请注意,即使已经有一个 /,也会添加一个 /

foo := "a/"
bar := foo / "b"
$ just --evaluate bar
a//b

/ 操作符使用 / 字符,即使在 Windows 上也是如此。因此,在使用通用命名规则(UNC)的路径中应避免使用 / 操作符,即那些以 \? 开头的路径,因为 UNC 路径不支持正斜线。

转义 {{

想要写一个包含 {{ 的配方,可以使用 {{{{

braces:
  echo 'I {{{{LOVE}} curly braces!'

(未匹配的 }} 会被忽略,所以不需要转义)

另一个选择是把所有你想转义的文本都放在插值里面:

braces:
  echo '{{'I {{LOVE}} curly braces!'}}'

然而,另一个选择是使用 {{ "{{" }}

braces:
  echo 'I {{ "{{" }}LOVE}} curly braces!'