mirror of
https://github.com/jaywcjlove/reference.git
synced 2025-06-18 05:01:21 +08:00
265 lines
39 KiB
HTML
265 lines
39 KiB
HTML
<!doctype html>
|
||
<html lang="en" data-color-mode="dark">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<title>Justfile 备忘清单
|
||
& justfile cheatsheet & Quick Reference</title>
|
||
<meta content="width=device-width, initial-scale=1" name="viewport">
|
||
<meta description="just 为您提供一种保存和运行项目特有命令的便捷方式
|
||
|
||
入门,为开发人员分享快速参考备忘单。">
|
||
<meta keywords="justfile,reference,Quick,Reference,cheatsheet,cheat,sheet">
|
||
<meta name="author" content="jaywcjlove">
|
||
<meta name="license" content="MIT">
|
||
<meta name="funding" content="https://jaywcjlove.github.io/#/sponsor">
|
||
<meta rel="apple-touch-icon" href="../icons/touch-icon-iphone.png">
|
||
<meta rel="apple-touch-icon" sizes="152x152" href="../icons/touch-icon-ipad.png">
|
||
<meta rel="apple-touch-icon" sizes="180x180" href="../icons/touch-icon-iphone.png">
|
||
<meta rel="apple-touch-icon" sizes="167x167" href="../icons/touch-icon-ipad-retina.png">
|
||
<meta rel="apple-touch-icon" sizes="120x120" href="../icons/touch-icon-iphone-retina.png">
|
||
<link rel="icon" href="../icons/favicon.svg" type="image/svg+xml">
|
||
<link href="../style/style.css" rel="stylesheet">
|
||
<link href="../style/katex.css" rel="stylesheet">
|
||
</head>
|
||
<body><nav class="header-nav"><div class="max-container"><a href="../index.html" class="logo"><svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" height="1em" width="1em">
|
||
<path d="m21.66 10.44-.98 4.18c-.84 3.61-2.5 5.07-5.62 4.77-.5-.04-1.04-.13-1.62-.27l-1.68-.4c-4.17-.99-5.46-3.05-4.48-7.23l.98-4.19c.2-.85.44-1.59.74-2.2 1.17-2.42 3.16-3.07 6.5-2.28l1.67.39c4.19.98 5.47 3.05 4.49 7.23Z" fill="#c9d1d9"></path>
|
||
<path d="M15.06 19.39c-.62.42-1.4.77-2.35 1.08l-1.58.52c-3.97 1.28-6.06.21-7.35-3.76L2.5 13.28c-1.28-3.97-.22-6.07 3.75-7.35l1.58-.52c.41-.13.8-.24 1.17-.31-.3.61-.54 1.35-.74 2.2l-.98 4.19c-.98 4.18.31 6.24 4.48 7.23l1.68.4c.58.14 1.12.23 1.62.27Zm2.43-8.88c-.06 0-.12-.01-.19-.02l-4.85-1.23a.75.75 0 0 1 .37-1.45l4.85 1.23a.748.748 0 0 1-.18 1.47Z" fill="#228e6c"></path>
|
||
<path d="M14.56 13.89c-.06 0-.12-.01-.19-.02l-2.91-.74a.75.75 0 0 1 .37-1.45l2.91.74c.4.1.64.51.54.91-.08.34-.38.56-.72.56Z" fill="#228e6c"></path>
|
||
</svg>
|
||
<span class="title">Quick Reference</span></a><div class="menu"><a href="javascript:void(0);" class="searchbtn" id="searchbtn"><svg xmlns="http://www.w3.org/2000/svg" height="1em" width="1em" viewBox="0 0 18 18">
|
||
<path fill="currentColor" d="M17.71,16.29 L14.31,12.9 C15.4069846,11.5024547 16.0022094,9.77665502 16,8 C16,3.581722 12.418278,0 8,0 C3.581722,0 0,3.581722 0,8 C0,12.418278 3.581722,16 8,16 C9.77665502,16.0022094 11.5024547,15.4069846 12.9,14.31 L16.29,17.71 C16.4777666,17.8993127 16.7333625,18.0057983 17,18.0057983 C17.2666375,18.0057983 17.5222334,17.8993127 17.71,17.71 C17.8993127,17.5222334 18.0057983,17.2666375 18.0057983,17 C18.0057983,16.7333625 17.8993127,16.4777666 17.71,16.29 Z M2,8 C2,4.6862915 4.6862915,2 8,2 C11.3137085,2 14,4.6862915 14,8 C14,11.3137085 11.3137085,14 8,14 C4.6862915,14 2,11.3137085 2,8 Z"></path>
|
||
</svg><span>搜索</span><span>⌘K</span></a><a href="https://github.com/jaywcjlove/reference/blob/main/docs/justfile.md" class="edit" target="__blank"><svg viewBox="0 0 36 36" fill="currentColor" height="1em" width="1em"><path d="m33 6.4-3.7-3.7a1.71 1.71 0 0 0-2.36 0L23.65 6H6a2 2 0 0 0-2 2v22a2 2 0 0 0 2 2h22a2 2 0 0 0 2-2V11.76l3-3a1.67 1.67 0 0 0 0-2.36ZM18.83 20.13l-4.19.93 1-4.15 9.55-9.57 3.23 3.23ZM29.5 9.43 26.27 6.2l1.85-1.85 3.23 3.23Z"></path><path fill="none" d="M0 0h36v36H0z"></path></svg><span>编辑</span></a><button id="darkMode" type="button"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" class="light" height="1em" width="1em">
|
||
<path d="M6.995 12c0 2.761 2.246 5.007 5.007 5.007s5.007-2.246 5.007-5.007-2.246-5.007-5.007-5.007S6.995 9.239 6.995 12zM11 19h2v3h-2zm0-17h2v3h-2zm-9 9h3v2H2zm17 0h3v2h-3zM5.637 19.778l-1.414-1.414 2.121-2.121 1.414 1.414zM16.242 6.344l2.122-2.122 1.414 1.414-2.122 2.122zM6.344 7.759 4.223 5.637l1.415-1.414 2.12 2.122zm13.434 10.605-1.414 1.414-2.122-2.122 1.414-1.414z"></path>
|
||
</svg>
|
||
<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24" class="dark" height="1em" width="1em">
|
||
<path d="M12 11.807A9.002 9.002 0 0 1 10.049 2a9.942 9.942 0 0 0-5.12 2.735c-3.905 3.905-3.905 10.237 0 14.142 3.906 3.906 10.237 3.905 14.143 0a9.946 9.946 0 0 0 2.735-5.119A9.003 9.003 0 0 1 12 11.807z"></path>
|
||
</svg>
|
||
</button><script src="../js/dark.js?v=1.8.3"></script><a href="https://github.com/jaywcjlove/reference" class="" target="__blank"><svg viewBox="0 0 16 16" fill="currentColor" height="1em" width="1em"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.012 8.012 0 0 0 16 8c0-4.42-3.58-8-8-8z"></path></svg></a></div></div></nav><div class="wrap h1body-exist max-container"><header class="wrap-header h1wrap"><h1 id="justfile-备忘清单"><svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" fill="currentColor" height="1em" width="1em">
|
||
<path d="M107.946667 838.4l57.173333 23.893333v-385.28l-103.68 250.026667c-17.493333 43.52 3.413333 93.44 46.506667 111.36z m832-157.866667L728.32 169.813333a85.888 85.888 0 0 0-77.226667-52.48c-11.093333 0-22.613333 1.706667-33.706666 6.4L302.933333 253.866667a85.290667 85.290667 0 0 0-46.08 110.933333l211.626667 510.72a85.248 85.248 0 0 0 110.933333 46.08l314.026667-130.133333a85.077333 85.077333 0 0 0 46.506667-110.933334zM336.213333 373.333333c-23.466667 0-42.666667-19.2-42.666666-42.666666s19.2-42.666667 42.666666-42.666667 42.666667 19.2 42.666667 42.666667-19.2 42.666667-42.666667 42.666666z m-85.333333 469.333334c0 46.933333 38.4 85.333333 85.333333 85.333333h61.866667l-147.2-355.84v270.506667z"></path>
|
||
</svg><a aria-hidden="true" tabindex="-1" href="#justfile-备忘清单"><span class="icon icon-link"></span></a>Justfile 备忘清单</h1><div class="wrap-body">
|
||
<p><a href="https://github.com/casey/just/network/dependents"><img src="https://badgen.net/github/dependents-repo/casey/just" alt="Repo Dependents"></a>
|
||
<a href="https://github.com/casey/just"><img src="https://badgen.net/badge/icon/Github?icon=github&label" alt="Github repo"></a></p>
|
||
<p><a href="https://github.com/casey/just"><code>just</code></a> 为您提供一种保存和运行项目特有命令的便捷方式</p>
|
||
</div></header><div class="menu-tocs"><div class="menu-btn"><svg aria-hidden="true" fill="currentColor" height="1em" width="1em" viewBox="0 0 16 16" version="1.1" data-view-component="true">
|
||
<path fill-rule="evenodd" d="M2 4a1 1 0 100-2 1 1 0 000 2zm3.75-1.5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zm0 5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zm0 5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zM3 8a1 1 0 11-2 0 1 1 0 012 0zm-1 6a1 1 0 100-2 1 1 0 000 2z"></path>
|
||
</svg></div><div class="menu-modal"><a aria-hidden="true" class="leve2 tocs-link" data-num="2" href="#入门">入门</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#简单的-justfile">简单的 justfile</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#带参数的配方">带参数的配方</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#变量和子变量">变量和子变量</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#默认配置">默认配置</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#命令的环境变量">命令的环境变量</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#backtick-从评估中捕获输出">backtick-从评估中捕获输出</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#别名">别名</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#带有命令-env-变量配置">带有命令 env 变量配置</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#设置">设置</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#配置依赖性-之前之后和周围">配置依赖性-之前、之后和周围</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#just-函数">Just 函数</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#字符串-用双引号转义">字符串-用双引号转义</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#命令注释quietsuppress-invert">命令注释:quiet(@)、suppress(-)、invert(!)</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#条件表达式ifloop-和-while">条件表达式:if、loop 和 while</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#just-命令行">Just 命令行</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#其他语言的配置">其他语言的配置</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#私人配置---名称以开头-_">私人配置 - 名称以开头 _</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#注意">注意</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#作为-shell-别名的配置">作为 shell 别名的配置</a><a aria-hidden="true" class="leve3 tocs-link" data-num="3" href="#ide-集成">IDE 集成</a></div></div><div class="h1wrap-body"><div class="wrap h2body-exist"><div class="wrap-header h2wrap"><h2 id="入门"><a aria-hidden="true" tabindex="-1" href="#入门"><span class="icon icon-link"></span></a>入门</h2><div class="wrap-body">
|
||
</div></div><div class="h2wrap-body"><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="简单的-justfile"><a aria-hidden="true" tabindex="-1" href="#简单的-justfile"><span class="icon icon-link"></span></a>简单的 justfile</h3><div class="wrap-body">
|
||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token shebang important">#!/usr/bin/env just --justfile</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment"># hello 是配方(recipe)的名字</span>
|
||
</span><span class="code-line">hello:
|
||
</span><span class="code-line"> <span class="token builtin class-name">echo</span> <span class="token string">"Hello World!"</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist row-span-2"><div class="wrap-header h3wrap"><h3 id="带参数的配方"><a aria-hidden="true" tabindex="-1" href="#带参数的配方"><span class="icon icon-link"></span></a>带参数的配方</h3><div class="wrap-body">
|
||
<!--rehype:wrap-class=row-span-2-->
|
||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">filter PATTERN:
|
||
</span><span class="code-line"> <span class="token builtin class-name">echo</span> <span class="token punctuation">{</span><span class="token punctuation">{</span>PATTERN<span class="token punctuation">}</span><span class="token punctuation">}</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment"># 带有默认值的 param</span>
|
||
</span><span class="code-line">email <span class="token assign-left variable">address</span><span class="token operator">=</span><span class="token string">'master@example.com'</span><span class="token builtin class-name">:</span>
|
||
</span><span class="code-line"> <span class="token builtin class-name">echo</span> <span class="token punctuation">{</span><span class="token punctuation">{</span>address<span class="token punctuation">}</span><span class="token punctuation">}</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment"># 带表达式的参数</span>
|
||
</span><span class="code-line"><span class="token builtin class-name">test</span> <span class="token assign-left variable">triple</span><span class="token operator">=</span><span class="token punctuation">(</span>arch<span class="token punctuation">(</span><span class="token punctuation">)</span> + <span class="token string">"-unknown-unknown"</span><span class="token punctuation">)</span>:
|
||
</span><span class="code-line"> ./test <span class="token punctuation">{</span><span class="token punctuation">{</span>triple<span class="token punctuation">}</span><span class="token punctuation">}</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment"># 变量参数:“+”接受一个或多个值</span>
|
||
</span><span class="code-line">backup +FILES:
|
||
</span><span class="code-line"> <span class="token function">scp</span> <span class="token punctuation">{</span><span class="token punctuation">{</span>FILES<span class="token punctuation">}</span><span class="token punctuation">}</span> me@example.com
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment"># 带*的可变参数:零个或多个值</span>
|
||
</span><span class="code-line">commit MESSAGE *FLAGS:
|
||
</span><span class="code-line"> <span class="token function">git</span> commit <span class="token punctuation">{</span><span class="token punctuation">{</span>FLAGS<span class="token punctuation">}</span><span class="token punctuation">}</span> <span class="token parameter variable">-m</span> <span class="token string">"{{MESSAGE}}"</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="变量和子变量"><a aria-hidden="true" tabindex="-1" href="#变量和子变量"><span class="icon icon-link"></span></a>变量和子变量</h3><div class="wrap-body">
|
||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">version :<span class="token operator">=</span> <span class="token string">"0.2.7"</span>
|
||
</span><span class="code-line">tardir :<span class="token operator">=</span> <span class="token string">"awesomesauce-"</span> + version
|
||
</span><span class="code-line">tarball :<span class="token operator">=</span> tardir + <span class="token string">".tar.gz"</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line">test:
|
||
</span><span class="code-line"> <span class="token builtin class-name">echo</span> <span class="token punctuation">{</span><span class="token punctuation">{</span>version<span class="token punctuation">}</span><span class="token punctuation">}</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment"># 仅从命令行设置/覆盖变量</span>
|
||
</span><span class="code-line">$ just <span class="token parameter variable">--set</span> version <span class="token number">1.1</span>.0
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="默认配置"><a aria-hidden="true" tabindex="-1" href="#默认配置"><span class="icon icon-link"></span></a>默认配置</h3><div class="wrap-body">
|
||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">default: lint build <span class="token builtin class-name">test</span>
|
||
</span><span class="code-line"><span class="token comment"># 显示帮助信息的默认配方</span>
|
||
</span><span class="code-line">default:
|
||
</span><span class="code-line"> @just <span class="token parameter variable">--list</span>
|
||
</span><span class="code-line"><span class="token comment"># 如果没有默认配方,则默认第一个配方</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="命令的环境变量"><a aria-hidden="true" tabindex="-1" href="#命令的环境变量"><span class="icon icon-link"></span></a>命令的环境变量</h3><div class="wrap-body">
|
||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token builtin class-name">export</span> RUST_BACKTRACE :<span class="token operator">=</span> <span class="token string">"1"</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line">test:
|
||
</span><span class="code-line"> <span class="token comment"># 如果堆栈崩溃,将打印堆栈跟踪</span>
|
||
</span><span class="code-line"> <span class="token function">cargo</span> <span class="token builtin class-name">test</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist row-span-2"><div class="wrap-header h3wrap"><h3 id="backtick-从评估中捕获输出"><a aria-hidden="true" tabindex="-1" href="#backtick-从评估中捕获输出"><span class="icon icon-link"></span></a>backtick-从评估中捕获输出</h3><div class="wrap-body">
|
||
<!--rehype:wrap-class=row-span-2-->
|
||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">JAVA_HOME :<span class="token operator">=</span> <span class="token variable"><span class="token variable">`</span>jbang jdk home <span class="token number">11</span><span class="token variable">`</span></span>
|
||
</span><span class="code-line"><span class="token comment"># Backtick 代码块</span>
|
||
</span><span class="code-line">stuff :<span class="token operator">=</span> <span class="token punctuation">\</span>``<span class="token variable"><span class="token variable">`</span>
|
||
</span></span><span class="code-line"><span class="token variable"> <span class="token assign-left variable">foo</span><span class="token operator">=</span><span class="token string">"hello"</span>
|
||
</span></span><span class="code-line"><span class="token variable"> <span class="token builtin class-name">echo</span> $foo <span class="token string">"world"</span>
|
||
</span></span><span class="code-line"><span class="token variable"><span class="token punctuation">\</span><span class="token variable">`</span></span>`<span class="token variable"><span class="token variable">`</span>
|
||
</span></span><span class="code-line"><span class="token variable">
|
||
</span></span><span class="code-line"><span class="token variable"><span class="token keyword">done</span> <span class="token assign-left variable">BRANCH</span><span class="token operator">=</span><span class="token variable">`</span></span><span class="token function">git</span> rev-parse --abbrev-ref HEAD<span class="token variable"><span class="token variable">`</span><span class="token builtin class-name">:</span>
|
||
</span></span><span class="code-line"><span class="token variable"> <span class="token function">git</span> checkout master
|
||
</span></span><span class="code-line"><span class="token variable">
|
||
</span></span><span class="code-line"><span class="token variable">sloc:
|
||
</span></span><span class="code-line"><span class="token variable"> @echo "<span class="token variable">`</span></span><span class="token function">wc</span> <span class="token parameter variable">-l</span> *.c` lines of code"
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment"># Backtick 在任何地方工作:字符串/变量/参数</span>
|
||
</span></code></pre>
|
||
<p>注意: 上面示例中 <code>\`</code> 没有转义过来</p>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="别名"><a aria-hidden="true" tabindex="-1" href="#别名"><span class="icon icon-link"></span></a>别名</h3><div class="wrap-body">
|
||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token builtin class-name">alias</span> t :<span class="token operator">=</span> <span class="token builtin class-name">test</span>
|
||
</span><span class="code-line"><span class="token builtin class-name">alias</span> c :<span class="token operator">=</span> check
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="带有命令-env-变量配置"><a aria-hidden="true" tabindex="-1" href="#带有命令-env-变量配置"><span class="icon icon-link"></span></a>带有命令 env 变量配置</h3><div class="wrap-body">
|
||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token comment"># recipe 参数作为$符号的Env变量</span>
|
||
</span><span class="code-line">hello <span class="token variable">$name</span><span class="token builtin class-name">:</span>
|
||
</span><span class="code-line"> <span class="token builtin class-name">echo</span> <span class="token variable">$name</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="设置"><a aria-hidden="true" tabindex="-1" href="#设置"><span class="icon icon-link"></span></a>设置</h3><div class="wrap-body">
|
||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token builtin class-name">set</span> shell :<span class="token operator">=</span> <span class="token punctuation">[</span><span class="token string">"zsh"</span>, <span class="token string">"-cu"</span><span class="token punctuation">]</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token builtin class-name">set</span> dotenv-load :<span class="token operator">=</span> <span class="token boolean">true</span>
|
||
</span><span class="code-line">serv:
|
||
</span><span class="code-line"> <span class="token builtin class-name">echo</span> <span class="token string">"<span class="token variable">$DATABASE_ADDRESS</span> from .env"</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token builtin class-name">set</span> positional-arguments :<span class="token operator">=</span> <span class="token boolean">true</span>
|
||
</span><span class="code-line">foo:
|
||
</span><span class="code-line"> <span class="token builtin class-name">echo</span> <span class="token variable">$0</span>
|
||
</span><span class="code-line"> <span class="token builtin class-name">echo</span> <span class="token variable">$1</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="配置依赖性-之前之后和周围"><a aria-hidden="true" tabindex="-1" href="#配置依赖性-之前之后和周围"><span class="icon icon-link"></span></a>配置依赖性-之前、之后和周围</h3><div class="wrap-body">
|
||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token comment"># 执行序列:A-> B-> C-> D</span>
|
||
</span><span class="code-line">b: a <span class="token operator">&&</span> c d
|
||
</span><span class="code-line"><span class="token comment"># 执行配方(recipe)“A”</span>
|
||
</span><span class="code-line">b:
|
||
</span><span class="code-line"> <span class="token builtin class-name">echo</span> <span class="token string">'B start!'</span>
|
||
</span><span class="code-line"> just a
|
||
</span><span class="code-line"> <span class="token builtin class-name">echo</span> <span class="token string">'B end!'</span>
|
||
</span><span class="code-line"><span class="token comment"># 通过表达式依赖参数</span>
|
||
</span><span class="code-line">default: <span class="token punctuation">(</span>build <span class="token string">"main"</span><span class="token punctuation">)</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line">build target:
|
||
</span><span class="code-line"> @echo <span class="token string">'Building {{target}}...'</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="just-函数"><a aria-hidden="true" tabindex="-1" href="#just-函数"><span class="icon icon-link"></span></a>Just 函数</h3><div class="wrap-body">
|
||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">hello name:
|
||
</span><span class="code-line"> <span class="token builtin class-name">echo</span> <span class="token punctuation">{</span><span class="token punctuation">{</span>os<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">}</span><span class="token punctuation">}</span>
|
||
</span><span class="code-line"> <span class="token builtin class-name">echo</span> <span class="token punctuation">{</span><span class="token punctuation">{</span>uppercase<span class="token punctuation">(</span>name<span class="token punctuation">)</span><span class="token punctuation">}</span><span class="token punctuation">}</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment"># 函数类别</span>
|
||
</span><span class="code-line">* 系统信息
|
||
</span><span class="code-line">* 系统信息
|
||
</span><span class="code-line">* Justfile 和 Justfile目录
|
||
</span><span class="code-line">* 字符串操纵
|
||
</span><span class="code-line">* 路径操纵
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment"># String contact: (key + ":" + value)</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="字符串-用双引号转义"><a aria-hidden="true" tabindex="-1" href="#字符串-用双引号转义"><span class="icon icon-link"></span></a>字符串-用双引号转义</h3><div class="wrap-body">
|
||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">tring-with-tab :<span class="token operator">=</span> <span class="token string">"<span class="token entity" title="\t">\t</span>"</span>
|
||
</span><span class="code-line">string-with-newline :<span class="token operator">=</span> <span class="token string">"<span class="token entity" title="\n">\n</span>"</span>
|
||
</span><span class="code-line">escapes :<span class="token operator">=</span> <span class="token string">'\t\n\r\"\\'</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment"># 该字符串将评估为`foo\nbar\n`</span>
|
||
</span><span class="code-line">x :<span class="token operator">=</span> <span class="token string">''</span>'
|
||
</span><span class="code-line"> foo
|
||
</span><span class="code-line"> bar
|
||
</span><span class="code-line"><span class="token string">''</span>'
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="命令注释quietsuppress-invert"><a aria-hidden="true" tabindex="-1" href="#命令注释quietsuppress-invert"><span class="icon icon-link"></span></a>命令注释:quiet(@)、suppress(-)、invert(!)</h3><div class="wrap-body">
|
||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">hello:
|
||
</span><span class="code-line"> @ <span class="token builtin class-name">echo</span> <span class="token string">"command will not be echoed"</span>
|
||
</span><span class="code-line"> - <span class="token builtin class-name">echo</span> <span class="token string">"ignore none-zero exit status and continue"</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line">@hello2:
|
||
</span><span class="code-line"> <span class="token builtin class-name">echo</span> <span class="token string">"command will not be echoed"</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment"># 反转命令退出状态!- shell 功能</span>
|
||
</span><span class="code-line">hello3:
|
||
</span><span class="code-line"> <span class="token comment"># 如果命令成功(退出状态为0),请仅退出</span>
|
||
</span><span class="code-line"> <span class="token operator">!</span> <span class="token function">git</span> branch <span class="token operator">|</span> <span class="token function">grep</span> <span class="token string">'* master'</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist row-span-2"><div class="wrap-header h3wrap"><h3 id="条件表达式ifloop-和-while"><a aria-hidden="true" tabindex="-1" href="#条件表达式ifloop-和-while"><span class="icon icon-link"></span></a>条件表达式:if、loop 和 while</h3><div class="wrap-body">
|
||
<!--rehype:wrap-class=row-span-2-->
|
||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line"><span class="token comment"># 正则表达匹配</span>
|
||
</span><span class="code-line">fo :<span class="token operator">=</span> <span class="token keyword">if</span> <span class="token string">"hi"</span> <span class="token operator">=~</span> <span class="token string">'h.+'</span> <span class="token punctuation">{</span> <span class="token string">"match"</span> <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span> <span class="token string">"mismatch"</span> <span class="token punctuation">}</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line">test:
|
||
</span><span class="code-line"> <span class="token keyword">if</span> <span class="token boolean">true</span><span class="token punctuation">;</span> <span class="token keyword">then</span> <span class="token builtin class-name">echo</span> <span class="token string">'True!'</span><span class="token punctuation">;</span> <span class="token keyword">fi</span>
|
||
</span><span class="code-line"> <span class="token keyword">for</span> <span class="token for-or-select variable">file</span> <span class="token keyword">in</span> <span class="token variable"><span class="token variable">`</span><span class="token function">ls</span> <span class="token builtin class-name">.</span><span class="token variable">`</span></span><span class="token punctuation">;</span> <span class="token keyword">do</span> <span class="token builtin class-name">echo</span> <span class="token variable">$file</span><span class="token punctuation">;</span> <span class="token keyword">done</span>
|
||
</span><span class="code-line"> <span class="token keyword">while</span> <span class="token variable"><span class="token variable">`</span>server-is-dead<span class="token variable">`</span></span><span class="token punctuation">;</span> <span class="token keyword">do</span> <span class="token function">ping</span> <span class="token parameter variable">-c</span> <span class="token number">1</span> server<span class="token punctuation">;</span> <span class="token keyword">done</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line">foo bar:
|
||
</span><span class="code-line"> <span class="token builtin class-name">echo</span> <span class="token punctuation">{</span><span class="token punctuation">{</span> <span class="token keyword">if</span> bar <span class="token operator">==</span> <span class="token string">"bar"</span> <span class="token punctuation">{</span> <span class="token string">"hello"</span> <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span> <span class="token string">"bye"</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span><span class="token punctuation">}</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist row-span-2"><div class="wrap-header h3wrap"><h3 id="just-命令行"><a aria-hidden="true" tabindex="-1" href="#just-命令行"><span class="icon icon-link"></span></a>Just 命令行</h3><div class="wrap-body">
|
||
<!--rehype:wrap-class=row-span-2-->
|
||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token comment"># 运行配方(recipe)</span>
|
||
</span><span class="code-line">$ just hello param1
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment"># 按字母顺序列出配方(recipe)</span>
|
||
</span><span class="code-line">$ just <span class="token parameter variable">--list</span>
|
||
</span><span class="code-line">$ just <span class="token parameter variable">--summary</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment"># 显示有关配方(recipe)的完整信息</span>
|
||
</span><span class="code-line">just <span class="token parameter variable">--show</span> <span class="token builtin class-name">test</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment"># 选择以交互方式运行的配方(recipe)</span>
|
||
</span><span class="code-line">$ just <span class="token parameter variable">--choose</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment"># shell 完成</span>
|
||
</span><span class="code-line">just --completions <span class="token function">zsh</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="其他语言的配置"><a aria-hidden="true" tabindex="-1" href="#其他语言的配置"><span class="icon icon-link"></span></a>其他语言的配置</h3><div class="wrap-body">
|
||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">bash-test:
|
||
</span><span class="code-line"> <span class="token comment">#!/usr/bin/env bash</span>
|
||
</span><span class="code-line"> <span class="token builtin class-name">set</span> <span class="token parameter variable">-euxo</span> pipefail
|
||
</span><span class="code-line"> <span class="token assign-left variable">hello</span><span class="token operator">=</span><span class="token string">'Yo'</span>
|
||
</span><span class="code-line"> <span class="token builtin class-name">echo</span> <span class="token string">"<span class="token variable">$hello</span> from bash!"</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="私人配置---名称以开头-_"><a aria-hidden="true" tabindex="-1" href="#私人配置---名称以开头-_"><span class="icon icon-link"></span></a>私人配置 - 名称以开头 _</h3><div class="wrap-body">
|
||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">test: _test-helper
|
||
</span><span class="code-line"> ./bin/test
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment"># ommited from 'just --list'</span>
|
||
</span><span class="code-line">_test-helper:
|
||
</span><span class="code-line"> ./bin/super-secret-test-helper-stuff
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="注意"><a aria-hidden="true" tabindex="-1" href="#注意"><span class="icon icon-link"></span></a>注意</h3><div class="wrap-body">
|
||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token comment"># 每个命令行都由一个新的 shell 执行</span>
|
||
</span><span class="code-line"><span class="token comment"># 如果一个命令行执行失败,just会退出</span>
|
||
</span><span class="code-line"><span class="token comment"># 后面的命令行不会执行</span>
|
||
</span><span class="code-line">change-working-dir:
|
||
</span><span class="code-line"> <span class="token builtin class-name">cd</span> bar <span class="token operator">&&</span> <span class="token builtin class-name">pwd</span>
|
||
</span><span class="code-line"> <span class="token comment"># 多行构造 - 用斜线转义换行符</span>
|
||
</span><span class="code-line"> <span class="token keyword">if</span> <span class="token boolean">true</span><span class="token punctuation">;</span> <span class="token keyword">then</span> <span class="token punctuation">\</span>
|
||
</span><span class="code-line"> <span class="token builtin class-name">echo</span> <span class="token string">'True!'</span><span class="token punctuation">;</span> <span class="token punctuation">\</span>
|
||
</span><span class="code-line"> <span class="token keyword">fi</span>
|
||
</span><span class="code-line">
|
||
</span><span class="code-line"><span class="token comment"># justfile 不区分大小写:Justfile、JUSTFILE 等</span>
|
||
</span><span class="code-line"><span class="token comment"># justfile 可以被隐藏:'.justfile'</span>
|
||
</span><span class="code-line"><span class="token comment"># 从子目录调用配方:`~/app1/target>$ just build`</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="作为-shell-别名的配置"><a aria-hidden="true" tabindex="-1" href="#作为-shell-别名的配置"><span class="icon icon-link"></span></a>作为 shell 别名的配置</h3><div class="wrap-body">
|
||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token keyword">for</span> <span class="token for-or-select variable">recipe</span> <span class="token keyword">in</span> <span class="token variable"><span class="token variable">`</span>just <span class="token parameter variable">-f</span> ~/.justfile <span class="token parameter variable">--summary</span><span class="token variable">`</span></span><span class="token punctuation">;</span> <span class="token keyword">do</span>
|
||
</span><span class="code-line"> <span class="token builtin class-name">alias</span> <span class="token variable">$recipe</span><span class="token operator">=</span><span class="token string">"just -f ~/.justfile -d. <span class="token variable">$recipe</span>"</span>
|
||
</span><span class="code-line"><span class="token keyword">done</span>
|
||
</span></code></pre>
|
||
</div></div></div><div class="wrap h3body-not-exist"><div class="wrap-header h3wrap"><h3 id="ide-集成"><a aria-hidden="true" tabindex="-1" href="#ide-集成"><span class="icon icon-link"></span></a>IDE 集成</h3><div class="wrap-body">
|
||
<ul>
|
||
<li>VS Code: <a href="https:%C2%AD//m%C2%ADark%C2%ADetp%C2%ADlac%C2%ADe.v%C2%ADisu%C2%ADals%C2%ADtud%C2%ADio.c%C2%ADom%C2%AD/it%C2%ADems%C2%AD?it%C2%ADemN%C2%ADame%C2%AD=sk%C2%ADell%C2%ADock.just">https://marketplace.visualstudio.com/items?itemName=skellock.just</a></li>
|
||
<li>JetBrains: <a href="https:%C2%AD//p%C2%ADlug%C2%ADins.je%C2%ADtbr%C2%ADain%C2%ADs.c%C2%ADom/%C2%ADplu%C2%ADgin%C2%AD/18%C2%AD658%C2%AD-just">https://plugins.jetbrains.com/plugin/18658-just</a></li>
|
||
</ul>
|
||
</div></div></div></div></div></div><script src="https://giscus.app/client.js" data-repo="jaywcjlove/reference" data-repo-id="R_kgDOID2-Mw" data-category="Q&A" data-category-id="DIC_kwDOID2-M84CS5wo" data-mapping="pathname" data-strict="0" data-reactions-enabled="1" data-emit-metadata="0" data-input-position="bottom" data-theme="dark" data-lang="zh-CN" crossorigin="anonymous" async></script><div class="giscus"></div></div><footer class="footer-wrap"><footer class="max-container">© 2022 <a href="https://wangchujiang.com/#/app" target="_blank">Kenny Wang</a>.</footer></footer><script src="../data.js?v=1.8.3" defer></script><script src="../js/fuse.min.js?v=1.8.3" defer></script><script src="../js/main.js?v=1.8.3" defer></script><div id="mysearch"><div class="mysearch-box"><div class="mysearch-input"><div><svg xmlns="http://www.w3.org/2000/svg" height="1em" width="1em" viewBox="0 0 18 18">
|
||
<path fill="currentColor" d="M17.71,16.29 L14.31,12.9 C15.4069846,11.5024547 16.0022094,9.77665502 16,8 C16,3.581722 12.418278,0 8,0 C3.581722,0 0,3.581722 0,8 C0,12.418278 3.581722,16 8,16 C9.77665502,16.0022094 11.5024547,15.4069846 12.9,14.31 L16.29,17.71 C16.4777666,17.8993127 16.7333625,18.0057983 17,18.0057983 C17.2666375,18.0057983 17.5222334,17.8993127 17.71,17.71 C17.8993127,17.5222334 18.0057983,17.2666375 18.0057983,17 C18.0057983,16.7333625 17.8993127,16.4777666 17.71,16.29 Z M2,8 C2,4.6862915 4.6862915,2 8,2 C11.3137085,2 14,4.6862915 14,8 C14,11.3137085 11.3137085,14 8,14 C4.6862915,14 2,11.3137085 2,8 Z"></path>
|
||
</svg><input id="mysearch-input" type="search" placeholder="搜索" autocomplete="off"><div class="mysearch-clear"></div></div><button id="mysearch-close" type="button">搜索</button></div><div class="mysearch-result"><div id="mysearch-menu"></div><div id="mysearch-content"></div></div></div></div></body>
|
||
</html>
|