mirror of
https://github.com/jaywcjlove/reference.git
synced 2025-06-18 05:01:21 +08:00
doc: Update react.md
cheatsheet. a723b97df5
This commit is contained in:
654
docs/bash.html
654
docs/bash.html
@ -38,30 +38,30 @@
|
||||
<p>这是开始使用 linux bash shell 脚本的快速参考备忘单。</p>
|
||||
</div></header><div class="h1wrap-body"><div class="wrap"><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"><div class="wrap-header h3wrap"><h3 id="hellosh"><a aria-hidden="true" tabindex="-1" href="#hellosh"><span class="icon icon-link"></span></a>hello.sh</h3><div class="wrap-body">
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1"><span class="token shebang important">#!/bin/bash</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token assign-left variable">VAR</span><span class="token operator">=</span><span class="token string">"world"</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token builtin class-name">echo</span> <span class="token string">"Hello <span class="token variable">$VAR</span>!"</span> <span class="token comment"># => Hello world!</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token shebang important">#!/bin/bash</span>
|
||||
</span><span class="code-line"><span class="token assign-left variable">VAR</span><span class="token operator">=</span><span class="token string">"world"</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">echo</span> <span class="token string">"Hello <span class="token variable">$VAR</span>!"</span> <span class="token comment"># => Hello world!</span>
|
||||
</span></code></pre>
|
||||
<p>执行脚本</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">bash</span> hello.sh
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">bash</span> hello.sh
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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 line-number" line="1"><span class="token assign-left variable">NAME</span><span class="token operator">=</span><span class="token string">"John"</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token builtin class-name">echo</span> <span class="token variable">${NAME}</span> <span class="token comment"># => John (变量)</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token builtin class-name">echo</span> <span class="token variable">$NAME</span> <span class="token comment"># => John (变量)</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token builtin class-name">echo</span> <span class="token string">"<span class="token variable">$NAME</span>"</span> <span class="token comment"># => John (变量)</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token builtin class-name">echo</span> <span class="token string">'$NAME'</span> <span class="token comment"># => $NAME (确切的字符串)</span>
|
||||
</span><span class="code-line line-number" line="6"><span class="token builtin class-name">echo</span> <span class="token string">"<span class="token variable">${NAME}</span>!"</span> <span class="token comment"># => John! (变量)</span>
|
||||
</span><span class="code-line line-number" line="7">NAME <span class="token operator">=</span> <span class="token string">"John"</span> <span class="token comment"># => Error (关于空间)</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token assign-left variable">NAME</span><span class="token operator">=</span><span class="token string">"John"</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">echo</span> <span class="token variable">${NAME}</span> <span class="token comment"># => John (变量)</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">echo</span> <span class="token variable">$NAME</span> <span class="token comment"># => John (变量)</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">echo</span> <span class="token string">"<span class="token variable">$NAME</span>"</span> <span class="token comment"># => John (变量)</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">echo</span> <span class="token string">'$NAME'</span> <span class="token comment"># => $NAME (确切的字符串)</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">echo</span> <span class="token string">"<span class="token variable">${NAME}</span>!"</span> <span class="token comment"># => John! (变量)</span>
|
||||
</span><span class="code-line">NAME <span class="token operator">=</span> <span class="token string">"John"</span> <span class="token comment"># => Error (关于空间)</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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 line-number" line="1"><span class="token comment"># 这是一个内联 Bash 注释。</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token comment"># 这是一个内联 Bash 注释。</span>
|
||||
</span></code></pre>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1"><span class="token builtin class-name">:</span> <span class="token string">'
|
||||
</span></span><span class="code-line line-number" line="2"><span class="token string">这是一个
|
||||
</span></span><span class="code-line line-number" line="3"><span class="token string">非常整洁的评论
|
||||
</span></span><span class="code-line line-number" line="4"><span class="token string">在 bash
|
||||
</span></span><span class="code-line line-number" line="5"><span class="token string">'</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line"><span class="token builtin class-name">:</span> <span class="token string">'
|
||||
</span></span><span class="code-line"><span class="token string">这是一个
|
||||
</span></span><span class="code-line"><span class="token string">非常整洁的评论
|
||||
</span></span><span class="code-line"><span class="token string">在 bash
|
||||
</span></span><span class="code-line"><span class="token string">'</span>
|
||||
</span></code></pre>
|
||||
<p>多行注释使用 <code>:'</code> 打开和 <code>'</code> 关闭</p>
|
||||
</div></div></div><div class="wrap 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">
|
||||
@ -118,22 +118,22 @@
|
||||
<table><thead><tr><th align="left">表示</th><th>描述</th></tr></thead><tbody><tr><td align="left"><code>$1</code> … <code>$9</code></td><td>参数 1 ... 9</td></tr><tr><td align="left"><code>$0</code></td><td>脚本本身的名称</td></tr><tr><td align="left"><code>$1</code></td><td>第一个论点</td></tr><tr><td align="left"><code>${10}</code></td><td>位置参数 10</td></tr><tr><td align="left"><code>$#</code></td><td>参数数量</td></tr><tr><td align="left"><code>$$</code></td><td>shell 的进程 id</td></tr><tr><td align="left"><code>$*</code></td><td>所有论据</td></tr><tr><td align="left"><code>$@</code></td><td>所有参数,从第一个开始</td></tr><tr><td align="left"><code>$-</code></td><td>当前选项</td></tr><tr><td align="left"><code>$_</code></td><td>上一个命令的最后一个参数</td></tr></tbody></table>
|
||||
<p>见:<a href="http://wiki.bash-hackers.org/syntax/shellvars#special_parameters_and_shell_variables">特殊参数</a></p>
|
||||
</div></div></div><div class="wrap"><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 line-number" line="1"><span class="token function-name function">get_name</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token builtin class-name">echo</span> <span class="token string">"John"</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token punctuation">}</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token builtin class-name">echo</span> <span class="token string">"You are <span class="token variable"><span class="token variable">$(</span>get_name<span class="token variable">)</span></span>"</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token function-name function">get_name</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 string">"John"</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">echo</span> <span class="token string">"You are <span class="token variable"><span class="token variable">$(</span>get_name<span class="token variable">)</span></span>"</span>
|
||||
</span></code></pre>
|
||||
<p>见:<a href="#bash-%E5%87%BD%E6%95%B0">函数</a></p>
|
||||
</div></div></div><div class="wrap"><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 line-number" line="1"><span class="token keyword">if</span> <span class="token punctuation">[</span><span class="token punctuation">[</span> <span class="token parameter variable">-z</span> <span class="token string">"<span class="token variable">$string</span>"</span> <span class="token punctuation">]</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">then</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token builtin class-name">echo</span> <span class="token string">"String is empty"</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token keyword">elif</span> <span class="token punctuation">[</span><span class="token punctuation">[</span> <span class="token parameter variable">-n</span> <span class="token string">"<span class="token variable">$string</span>"</span> <span class="token punctuation">]</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">then</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token builtin class-name">echo</span> <span class="token string">"String is not empty"</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token keyword">fi</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token keyword">if</span> <span class="token punctuation">[</span><span class="token punctuation">[</span> <span class="token parameter variable">-z</span> <span class="token string">"<span class="token variable">$string</span>"</span> <span class="token punctuation">]</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">then</span>
|
||||
</span><span class="code-line"> <span class="token builtin class-name">echo</span> <span class="token string">"String is empty"</span>
|
||||
</span><span class="code-line"><span class="token keyword">elif</span> <span class="token punctuation">[</span><span class="token punctuation">[</span> <span class="token parameter variable">-n</span> <span class="token string">"<span class="token variable">$string</span>"</span> <span class="token punctuation">]</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">then</span>
|
||||
</span><span class="code-line"> <span class="token builtin class-name">echo</span> <span class="token string">"String is not empty"</span>
|
||||
</span><span class="code-line"><span class="token keyword">fi</span>
|
||||
</span></code></pre>
|
||||
<p>见:<a href="#bash-%E6%9D%A1%E4%BB%B6%E5%8F%A5">条件句</a></p>
|
||||
</div></div></div><div class="wrap"><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-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1"><span class="token builtin class-name">echo</span> <span class="token punctuation">{</span>A,B<span class="token punctuation">}</span>.js
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line"><span class="token builtin class-name">echo</span> <span class="token punctuation">{</span>A,B<span class="token punctuation">}</span>.js
|
||||
</span></code></pre>
|
||||
<hr>
|
||||
|
||||
@ -160,10 +160,10 @@
|
||||
<table><thead><tr><th align="left">表示</th><th>描述</th></tr></thead><tbody><tr><td align="left"><code>{A,B}</code></td><td>与 <code>A B</code> 相同</td></tr><tr><td align="left"><code>{A,B}.js</code></td><td>与 <code>A.js B.js</code> 相同</td></tr><tr><td align="left"><code>{1..5}</code></td><td>与 <code>1 2 3 4 5</code> 相同</td></tr></tbody></table>
|
||||
<p>见:<a href="http://wiki.bash-hackers.org/syntax/expansion/brace">大括号扩展</a></p>
|
||||
</div></div></div><div class="wrap"><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 line-number" line="1"><span class="token comment"># => I'm in /当前/的/路径</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token builtin class-name">echo</span> <span class="token string">"I'm in <span class="token variable"><span class="token variable">$(</span><span class="token environment constant">PWD</span><span class="token variable">)</span></span>"</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token comment"># Same as:</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token builtin class-name">echo</span> <span class="token string">"I'm in <span class="token variable"><span class="token variable">`</span><span class="token builtin class-name">pwd</span><span class="token variable">`</span></span>"</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token comment"># => I'm in /当前/的/路径</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">echo</span> <span class="token string">"I'm in <span class="token variable"><span class="token variable">$(</span><span class="token environment constant">PWD</span><span class="token variable">)</span></span>"</span>
|
||||
</span><span class="code-line"><span class="token comment"># Same as:</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">echo</span> <span class="token string">"I'm in <span class="token variable"><span class="token variable">`</span><span class="token builtin class-name">pwd</span><span class="token variable">`</span></span>"</span>
|
||||
</span></code></pre>
|
||||
<p>见:<a href="http://wiki.bash-hackers.org/syntax/expansion/cmdsubst">命令替换</a></p>
|
||||
</div></div></div></div></div><div class="wrap"><div class="wrap-header h2wrap"><h2 id="bash-参数扩展"><a aria-hidden="true" tabindex="-1" href="#bash-参数扩展"><span class="icon icon-link"></span></a>Bash 参数扩展</h2><div class="wrap-body">
|
||||
@ -273,71 +273,71 @@
|
||||
|
||||
<table><thead><tr><th align="left">表示</th><th>描述</th></tr></thead><tbody><tr><td align="left"><code>${FOO:-val}</code></td><td><code>$FOO</code>,如果未设置,则为 <code>val</code></td></tr><tr><td align="left"><code>${FOO:=val}</code></td><td>如果未设置,则将 <code>$FOO</code> 设置为 <code>val</code></td></tr><tr><td align="left"><code>${FOO:+val}</code></td><td><code>val</code> 如果设置了<code>$FOO</code></td></tr><tr><td align="left"><code>${FOO:?message}</code></td><td>如果 <code>$FOO</code> 未设置,则显示消息并退出</td></tr></tbody></table>
|
||||
</div></div></div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="替代-substitution"><a aria-hidden="true" tabindex="-1" href="#替代-substitution"><span class="icon icon-link"></span></a>替代 Substitution</h3><div class="wrap-body">
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1"><span class="token builtin class-name">echo</span> <span class="token variable">${food<span class="token operator">:-</span>Cake}</span> <span class="token comment">#=> $food or "Cake"</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token builtin class-name">echo</span> <span class="token variable">${food<span class="token operator">:-</span>Cake}</span> <span class="token comment">#=> $food or "Cake"</span>
|
||||
</span></code></pre>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1"><span class="token assign-left variable">STR</span><span class="token operator">=</span><span class="token string">"/path/to/foo.cpp"</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token builtin class-name">echo</span> <span class="token variable">${STR<span class="token operator">%</span>.cpp}</span> <span class="token comment"># /path/to/foo</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token builtin class-name">echo</span> <span class="token variable">${STR<span class="token operator">%</span>.cpp}</span>.o <span class="token comment"># /path/to/foo.o</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token builtin class-name">echo</span> <span class="token variable">${STR<span class="token operator">%</span><span class="token operator">/</span>*}</span> <span class="token comment"># /path/to</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token builtin class-name">echo</span> <span class="token variable">${STR<span class="token operator">##</span>*.}</span> <span class="token comment"># cpp (extension)</span>
|
||||
</span><span class="code-line line-number" line="6"><span class="token builtin class-name">echo</span> <span class="token variable">${STR<span class="token operator">##</span>*<span class="token operator">/</span>}</span> <span class="token comment"># foo.cpp (basepath)</span>
|
||||
</span><span class="code-line line-number" line="7"><span class="token builtin class-name">echo</span> <span class="token variable">${STR<span class="token operator">#</span>*<span class="token operator">/</span>}</span> <span class="token comment"># path/to/foo.cpp</span>
|
||||
</span><span class="code-line line-number" line="8"><span class="token builtin class-name">echo</span> <span class="token variable">${STR<span class="token operator">##</span>*<span class="token operator">/</span>}</span> <span class="token comment"># foo.cpp</span>
|
||||
</span><span class="code-line line-number" line="9"><span class="token builtin class-name">echo</span> <span class="token variable">${STR<span class="token operator">/</span>foo<span class="token operator">/</span>bar}</span> <span class="token comment"># /path/to/bar.cpp</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token assign-left variable">STR</span><span class="token operator">=</span><span class="token string">"/path/to/foo.cpp"</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">echo</span> <span class="token variable">${STR<span class="token operator">%</span>.cpp}</span> <span class="token comment"># /path/to/foo</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">echo</span> <span class="token variable">${STR<span class="token operator">%</span>.cpp}</span>.o <span class="token comment"># /path/to/foo.o</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">echo</span> <span class="token variable">${STR<span class="token operator">%</span><span class="token operator">/</span>*}</span> <span class="token comment"># /path/to</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">echo</span> <span class="token variable">${STR<span class="token operator">##</span>*.}</span> <span class="token comment"># cpp (extension)</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">echo</span> <span class="token variable">${STR<span class="token operator">##</span>*<span class="token operator">/</span>}</span> <span class="token comment"># foo.cpp (basepath)</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">echo</span> <span class="token variable">${STR<span class="token operator">#</span>*<span class="token operator">/</span>}</span> <span class="token comment"># path/to/foo.cpp</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">echo</span> <span class="token variable">${STR<span class="token operator">##</span>*<span class="token operator">/</span>}</span> <span class="token comment"># foo.cpp</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">echo</span> <span class="token variable">${STR<span class="token operator">/</span>foo<span class="token operator">/</span>bar}</span> <span class="token comment"># /path/to/bar.cpp</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="切片-slicing"><a aria-hidden="true" tabindex="-1" href="#切片-slicing"><span class="icon icon-link"></span></a>切片 Slicing</h3><div class="wrap-body">
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1"><span class="token assign-left variable">name</span><span class="token operator">=</span><span class="token string">"John"</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token builtin class-name">echo</span> <span class="token variable">${name}</span> <span class="token comment"># => John</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token builtin class-name">echo</span> <span class="token variable">${name<span class="token operator">:</span>0<span class="token operator">:</span>2}</span> <span class="token comment"># => Jo</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token builtin class-name">echo</span> <span class="token variable">${name<span class="token operator">:</span><span class="token operator">:</span>2}</span> <span class="token comment"># => Jo</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token builtin class-name">echo</span> <span class="token variable">${name<span class="token operator">:</span><span class="token operator">:-</span>1}</span> <span class="token comment"># => Joh</span>
|
||||
</span><span class="code-line line-number" line="6"><span class="token builtin class-name">echo</span> <span class="token variable">${name<span class="token operator">:</span>(-1)}</span> <span class="token comment"># => n</span>
|
||||
</span><span class="code-line line-number" line="7"><span class="token builtin class-name">echo</span> <span class="token variable">${name<span class="token operator">:</span>(-2)}</span> <span class="token comment"># => hn</span>
|
||||
</span><span class="code-line line-number" line="8"><span class="token builtin class-name">echo</span> <span class="token variable">${name<span class="token operator">:</span>(-2)<span class="token operator">:</span>2}</span> <span class="token comment"># => hn</span>
|
||||
</span><span class="code-line line-number" line="9">
|
||||
</span><span class="code-line line-number" line="10"><span class="token assign-left variable">length</span><span class="token operator">=</span><span class="token number">2</span>
|
||||
</span><span class="code-line line-number" line="11"><span class="token builtin class-name">echo</span> <span class="token variable">${name<span class="token operator">:</span>0<span class="token operator">:</span>length}</span> <span class="token comment"># => Jo</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token assign-left variable">name</span><span class="token operator">=</span><span class="token string">"John"</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">echo</span> <span class="token variable">${name}</span> <span class="token comment"># => John</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">echo</span> <span class="token variable">${name<span class="token operator">:</span>0<span class="token operator">:</span>2}</span> <span class="token comment"># => Jo</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">echo</span> <span class="token variable">${name<span class="token operator">:</span><span class="token operator">:</span>2}</span> <span class="token comment"># => Jo</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">echo</span> <span class="token variable">${name<span class="token operator">:</span><span class="token operator">:-</span>1}</span> <span class="token comment"># => Joh</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">echo</span> <span class="token variable">${name<span class="token operator">:</span>(-1)}</span> <span class="token comment"># => n</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">echo</span> <span class="token variable">${name<span class="token operator">:</span>(-2)}</span> <span class="token comment"># => hn</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">echo</span> <span class="token variable">${name<span class="token operator">:</span>(-2)<span class="token operator">:</span>2}</span> <span class="token comment"># => hn</span>
|
||||
</span><span class="code-line">
|
||||
</span><span class="code-line"><span class="token assign-left variable">length</span><span class="token operator">=</span><span class="token number">2</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">echo</span> <span class="token variable">${name<span class="token operator">:</span>0<span class="token operator">:</span>length}</span> <span class="token comment"># => Jo</span>
|
||||
</span></code></pre>
|
||||
<p>见:<a href="http://wiki.bash-hackers.org/syntax/pe">参数扩展</a></p>
|
||||
</div></div></div><div class="wrap"><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 line-number" line="1"><span class="token assign-left variable">SRC</span><span class="token operator">=</span><span class="token string">"/path/to/foo.cpp"</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token assign-left variable">SRC</span><span class="token operator">=</span><span class="token string">"/path/to/foo.cpp"</span>
|
||||
</span></code></pre>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1"><span class="token assign-left variable">BASEPATH</span><span class="token operator">=</span><span class="token variable">${SRC<span class="token operator">##</span>*<span class="token operator">/</span>}</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token builtin class-name">echo</span> <span class="token variable">$BASEPATH</span> <span class="token comment"># => "foo.cpp"</span>
|
||||
</span><span class="code-line line-number" line="3">
|
||||
</span><span class="code-line line-number" line="4"><span class="token assign-left variable">DIRPATH</span><span class="token operator">=</span><span class="token variable">${SRC<span class="token operator">%</span>$BASEPATH}</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token builtin class-name">echo</span> <span class="token variable">$DIRPATH</span> <span class="token comment"># => "/path/to/"</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token assign-left variable">BASEPATH</span><span class="token operator">=</span><span class="token variable">${SRC<span class="token operator">##</span>*<span class="token operator">/</span>}</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">echo</span> <span class="token variable">$BASEPATH</span> <span class="token comment"># => "foo.cpp"</span>
|
||||
</span><span class="code-line">
|
||||
</span><span class="code-line"><span class="token assign-left variable">DIRPATH</span><span class="token operator">=</span><span class="token variable">${SRC<span class="token operator">%</span>$BASEPATH}</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">echo</span> <span class="token variable">$DIRPATH</span> <span class="token comment"># => "/path/to/"</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="transform"><a aria-hidden="true" tabindex="-1" href="#transform"><span class="icon icon-link"></span></a>Transform</h3><div class="wrap-body">
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1"><span class="token assign-left variable">STR</span><span class="token operator">=</span><span class="token string">"HELLO WORLD!"</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token builtin class-name">echo</span> <span class="token variable">${STR<span class="token operator">,</span>}</span> <span class="token comment"># => hELLO WORLD!</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token builtin class-name">echo</span> <span class="token variable">${STR<span class="token operator">,,</span>}</span> <span class="token comment"># => hello world!</span>
|
||||
</span><span class="code-line line-number" line="4">
|
||||
</span><span class="code-line line-number" line="5"><span class="token assign-left variable">STR</span><span class="token operator">=</span><span class="token string">"hello world!"</span>
|
||||
</span><span class="code-line line-number" line="6"><span class="token builtin class-name">echo</span> <span class="token variable">${STR<span class="token operator">^</span>}</span> <span class="token comment"># => Hello world!</span>
|
||||
</span><span class="code-line line-number" line="7"><span class="token builtin class-name">echo</span> <span class="token variable">${STR<span class="token operator">^^</span>}</span> <span class="token comment"># => HELLO WORLD!</span>
|
||||
</span><span class="code-line line-number" line="8">
|
||||
</span><span class="code-line line-number" line="9"><span class="token assign-left variable">ARR</span><span class="token operator">=</span><span class="token punctuation">(</span>hello World<span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="10"><span class="token builtin class-name">echo</span> <span class="token string">"<span class="token variable">${ARR<span class="token punctuation">[</span>@<span class="token punctuation">]</span><span class="token operator">,</span>}</span>"</span> <span class="token comment"># => hello world</span>
|
||||
</span><span class="code-line line-number" line="11"><span class="token builtin class-name">echo</span> <span class="token string">"<span class="token variable">${ARR<span class="token punctuation">[</span>@<span class="token punctuation">]</span><span class="token operator">^</span>}</span>"</span> <span class="token comment"># => Hello World</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token assign-left variable">STR</span><span class="token operator">=</span><span class="token string">"HELLO WORLD!"</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">echo</span> <span class="token variable">${STR<span class="token operator">,</span>}</span> <span class="token comment"># => hELLO WORLD!</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">echo</span> <span class="token variable">${STR<span class="token operator">,,</span>}</span> <span class="token comment"># => hello world!</span>
|
||||
</span><span class="code-line">
|
||||
</span><span class="code-line"><span class="token assign-left variable">STR</span><span class="token operator">=</span><span class="token string">"hello world!"</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">echo</span> <span class="token variable">${STR<span class="token operator">^</span>}</span> <span class="token comment"># => Hello world!</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">echo</span> <span class="token variable">${STR<span class="token operator">^^</span>}</span> <span class="token comment"># => HELLO WORLD!</span>
|
||||
</span><span class="code-line">
|
||||
</span><span class="code-line"><span class="token assign-left variable">ARR</span><span class="token operator">=</span><span class="token punctuation">(</span>hello World<span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">echo</span> <span class="token string">"<span class="token variable">${ARR<span class="token punctuation">[</span>@<span class="token punctuation">]</span><span class="token operator">,</span>}</span>"</span> <span class="token comment"># => hello world</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">echo</span> <span class="token string">"<span class="token variable">${ARR<span class="token punctuation">[</span>@<span class="token punctuation">]</span><span class="token operator">^</span>}</span>"</span> <span class="token comment"># => Hello World</span>
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap"><div class="wrap-header h2wrap"><h2 id="bash-数组"><a aria-hidden="true" tabindex="-1" href="#bash-数组"><span class="icon icon-link"></span></a>Bash 数组</h2><div class="wrap-body">
|
||||
</div></div><div class="h2wrap-body"><div class="wrap"><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 line-number" line="1"><span class="token assign-left variable">Fruits</span><span class="token operator">=</span><span class="token punctuation">(</span><span class="token string">'Apple'</span> <span class="token string">'Banana'</span> <span class="token string">'Orange'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="2">
|
||||
</span><span class="code-line line-number" line="3">Fruits<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token operator">=</span><span class="token string">"Apple"</span>
|
||||
</span><span class="code-line line-number" line="4">Fruits<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token operator">=</span><span class="token string">"Banana"</span>
|
||||
</span><span class="code-line line-number" line="5">Fruits<span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">]</span><span class="token operator">=</span><span class="token string">"Orange"</span>
|
||||
</span><span class="code-line line-number" line="6">
|
||||
</span><span class="code-line line-number" line="7"><span class="token assign-left variable">ARRAY1</span><span class="token operator">=</span><span class="token punctuation">(</span>foo<span class="token punctuation">{</span><span class="token number">1</span><span class="token punctuation">..</span><span class="token number">2</span><span class="token punctuation">}</span><span class="token punctuation">)</span> <span class="token comment"># => foo1 foo2</span>
|
||||
</span><span class="code-line line-number" line="8"><span class="token assign-left variable">ARRAY2</span><span class="token operator">=</span><span class="token punctuation">(</span><span class="token punctuation">{</span>A<span class="token punctuation">..</span>D<span class="token punctuation">}</span><span class="token punctuation">)</span> <span class="token comment"># => A B C D</span>
|
||||
</span><span class="code-line line-number" line="9">
|
||||
</span><span class="code-line line-number" line="10"><span class="token comment"># 合并 => foo1 foo2 A B C D</span>
|
||||
</span><span class="code-line line-number" line="11"><span class="token assign-left variable">ARRAY3</span><span class="token operator">=</span><span class="token punctuation">(</span><span class="token variable">${ARRAY1<span class="token punctuation">[</span>@<span class="token punctuation">]</span>}</span> <span class="token variable">${ARRAY2<span class="token punctuation">[</span>@<span class="token punctuation">]</span>}</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="12">
|
||||
</span><span class="code-line line-number" line="13"><span class="token comment"># 声明构造</span>
|
||||
</span><span class="code-line line-number" line="14"><span class="token builtin class-name">declare</span> <span class="token parameter variable">-a</span> <span class="token assign-left variable">Numbers</span><span class="token operator">=</span><span class="token punctuation">(</span><span class="token number">1</span> <span class="token number">2</span> <span class="token number">3</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="15"><span class="token assign-left variable">Numbers</span><span class="token operator">+=</span><span class="token punctuation">(</span><span class="token number">4</span> <span class="token number">5</span><span class="token punctuation">)</span> <span class="token comment"># 附加 => 1 2 3 4 5</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token assign-left variable">Fruits</span><span class="token operator">=</span><span class="token punctuation">(</span><span class="token string">'Apple'</span> <span class="token string">'Banana'</span> <span class="token string">'Orange'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line">
|
||||
</span><span class="code-line">Fruits<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token operator">=</span><span class="token string">"Apple"</span>
|
||||
</span><span class="code-line">Fruits<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token operator">=</span><span class="token string">"Banana"</span>
|
||||
</span><span class="code-line">Fruits<span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">]</span><span class="token operator">=</span><span class="token string">"Orange"</span>
|
||||
</span><span class="code-line">
|
||||
</span><span class="code-line"><span class="token assign-left variable">ARRAY1</span><span class="token operator">=</span><span class="token punctuation">(</span>foo<span class="token punctuation">{</span><span class="token number">1</span><span class="token punctuation">..</span><span class="token number">2</span><span class="token punctuation">}</span><span class="token punctuation">)</span> <span class="token comment"># => foo1 foo2</span>
|
||||
</span><span class="code-line"><span class="token assign-left variable">ARRAY2</span><span class="token operator">=</span><span class="token punctuation">(</span><span class="token punctuation">{</span>A<span class="token punctuation">..</span>D<span class="token punctuation">}</span><span class="token punctuation">)</span> <span class="token comment"># => A B C D</span>
|
||||
</span><span class="code-line">
|
||||
</span><span class="code-line"><span class="token comment"># 合并 => foo1 foo2 A B C D</span>
|
||||
</span><span class="code-line"><span class="token assign-left variable">ARRAY3</span><span class="token operator">=</span><span class="token punctuation">(</span><span class="token variable">${ARRAY1<span class="token punctuation">[</span>@<span class="token punctuation">]</span>}</span> <span class="token variable">${ARRAY2<span class="token punctuation">[</span>@<span class="token punctuation">]</span>}</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">declare</span> <span class="token parameter variable">-a</span> <span class="token assign-left variable">Numbers</span><span class="token operator">=</span><span class="token punctuation">(</span><span class="token number">1</span> <span class="token number">2</span> <span class="token number">3</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token assign-left variable">Numbers</span><span class="token operator">+=</span><span class="token punctuation">(</span><span class="token number">4</span> <span class="token number">5</span><span class="token punctuation">)</span> <span class="token comment"># 附加 => 1 2 3 4 5</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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">
|
||||
|
||||
@ -387,61 +387,61 @@
|
||||
|
||||
<table><thead><tr><th align="left">:-</th><th>-</th></tr></thead><tbody><tr><td align="left"><code>${Fruits[0]}</code></td><td>第一个元素</td></tr><tr><td align="left"><code>${Fruits[-1]}</code></td><td>最后一个元素</td></tr><tr><td align="left"><code>${Fruits[*]}</code></td><td>所有元素</td></tr><tr><td align="left"><code>${Fruits[@]}</code></td><td>所有元素</td></tr><tr><td align="left"><code>${#Fruits[@]}</code></td><td>总数</td></tr><tr><td align="left"><code>${#Fruits}</code></td><td>第一节长度</td></tr><tr><td align="left"><code>${#Fruits[3]}</code></td><td>第n个长度</td></tr><tr><td align="left"><code>${Fruits[@]:3:2}</code></td><td>范围</td></tr><tr><td align="left"><code>${!Fruits[@]}</code></td><td>所有 Key</td></tr></tbody></table>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="迭代-iteration"><a aria-hidden="true" tabindex="-1" href="#迭代-iteration"><span class="icon icon-link"></span></a>迭代 Iteration</h3><div class="wrap-body">
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1"><span class="token assign-left variable">Fruits</span><span class="token operator">=</span><span class="token punctuation">(</span><span class="token string">'Apple'</span> <span class="token string">'Banana'</span> <span class="token string">'Orange'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token keyword">for</span> <span class="token for-or-select variable">e</span> <span class="token keyword">in</span> <span class="token string">"<span class="token variable">${Fruits<span class="token punctuation">[</span>@<span class="token punctuation">]</span>}</span>"</span><span class="token punctuation">;</span> <span class="token keyword">do</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token builtin class-name">echo</span> <span class="token variable">$e</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token keyword">done</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token assign-left variable">Fruits</span><span class="token operator">=</span><span class="token punctuation">(</span><span class="token string">'Apple'</span> <span class="token string">'Banana'</span> <span class="token string">'Orange'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token keyword">for</span> <span class="token for-or-select variable">e</span> <span class="token keyword">in</span> <span class="token string">"<span class="token variable">${Fruits<span class="token punctuation">[</span>@<span class="token punctuation">]</span>}</span>"</span><span class="token punctuation">;</span> <span class="token keyword">do</span>
|
||||
</span><span class="code-line"> <span class="token builtin class-name">echo</span> <span class="token variable">$e</span>
|
||||
</span><span class="code-line"><span class="token keyword">done</span>
|
||||
</span></code></pre>
|
||||
</div></div><div class="h3wrap-body"><div class="wrap"><div class="wrap-header h4wrap"><h4 id="with-index"><a aria-hidden="true" tabindex="-1" href="#with-index"><span class="icon icon-link"></span></a>With index</h4><div class="wrap-body">
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1"><span class="token keyword">for</span> <span class="token for-or-select variable">i</span> <span class="token keyword">in</span> <span class="token string">"<span class="token variable">${<span class="token operator">!</span>Fruits<span class="token punctuation">[</span>@<span class="token punctuation">]</span>}</span>"</span><span class="token punctuation">;</span> <span class="token keyword">do</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token builtin class-name">printf</span> <span class="token string">"%s<span class="token entity" title="\t">\t</span>%s<span class="token entity" title="\n">\n</span>"</span> <span class="token string">"<span class="token variable">$i</span>"</span> <span class="token string">"<span class="token variable">${Fruits<span class="token punctuation">[</span>$i<span class="token punctuation">]</span>}</span>"</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token keyword">done</span>
|
||||
<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">i</span> <span class="token keyword">in</span> <span class="token string">"<span class="token variable">${<span class="token operator">!</span>Fruits<span class="token punctuation">[</span>@<span class="token punctuation">]</span>}</span>"</span><span class="token punctuation">;</span> <span class="token keyword">do</span>
|
||||
</span><span class="code-line"> <span class="token builtin class-name">printf</span> <span class="token string">"%s<span class="token entity" title="\t">\t</span>%s<span class="token entity" title="\n">\n</span>"</span> <span class="token string">"<span class="token variable">$i</span>"</span> <span class="token string">"<span class="token variable">${Fruits<span class="token punctuation">[</span>$i<span class="token punctuation">]</span>}</span>"</span>
|
||||
</span><span class="code-line"><span class="token keyword">done</span>
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap col-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=col-span-2-->
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1"><span class="token assign-left variable">Fruits</span><span class="token operator">=</span><span class="token punctuation">(</span><span class="token string">"<span class="token variable">${Fruits<span class="token punctuation">[</span>@<span class="token punctuation">]</span>}</span>"</span> <span class="token string">"Watermelon"</span><span class="token punctuation">)</span> <span class="token comment"># 推</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token assign-left variable">Fruits</span><span class="token operator">+=</span><span class="token punctuation">(</span><span class="token string">'Watermelon'</span><span class="token punctuation">)</span> <span class="token comment"># 也推</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token assign-left variable">Fruits</span><span class="token operator">=</span><span class="token punctuation">(</span> <span class="token variable">${Fruits<span class="token punctuation">[</span>@<span class="token punctuation">]</span><span class="token operator">/</span>Ap*<span class="token operator">/</span>}</span> <span class="token punctuation">)</span> <span class="token comment"># 通过正则表达式匹配删除</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token builtin class-name">unset</span> Fruits<span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">]</span> <span class="token comment"># 删除一项</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token assign-left variable">Fruits</span><span class="token operator">=</span><span class="token punctuation">(</span><span class="token string">"<span class="token variable">${Fruits<span class="token punctuation">[</span>@<span class="token punctuation">]</span>}</span>"</span><span class="token punctuation">)</span> <span class="token comment"># 复制</span>
|
||||
</span><span class="code-line line-number" line="6"><span class="token assign-left variable">Fruits</span><span class="token operator">=</span><span class="token punctuation">(</span><span class="token string">"<span class="token variable">${Fruits<span class="token punctuation">[</span>@<span class="token punctuation">]</span>}</span>"</span> <span class="token string">"<span class="token variable">${Veggies<span class="token punctuation">[</span>@<span class="token punctuation">]</span>}</span>"</span><span class="token punctuation">)</span> <span class="token comment"># 连接</span>
|
||||
</span><span class="code-line line-number" line="7"><span class="token assign-left variable">lines</span><span class="token operator">=</span><span class="token punctuation">(</span><span class="token variable"><span class="token variable">`</span><span class="token function">cat</span> <span class="token string">"logfile"</span><span class="token variable">`</span></span><span class="token punctuation">)</span> <span class="token comment"># 从文件中读取</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token assign-left variable">Fruits</span><span class="token operator">=</span><span class="token punctuation">(</span><span class="token string">"<span class="token variable">${Fruits<span class="token punctuation">[</span>@<span class="token punctuation">]</span>}</span>"</span> <span class="token string">"Watermelon"</span><span class="token punctuation">)</span> <span class="token comment"># 推</span>
|
||||
</span><span class="code-line"><span class="token assign-left variable">Fruits</span><span class="token operator">+=</span><span class="token punctuation">(</span><span class="token string">'Watermelon'</span><span class="token punctuation">)</span> <span class="token comment"># 也推</span>
|
||||
</span><span class="code-line"><span class="token assign-left variable">Fruits</span><span class="token operator">=</span><span class="token punctuation">(</span> <span class="token variable">${Fruits<span class="token punctuation">[</span>@<span class="token punctuation">]</span><span class="token operator">/</span>Ap*<span class="token operator">/</span>}</span> <span class="token punctuation">)</span> <span class="token comment"># 通过正则表达式匹配删除</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">unset</span> Fruits<span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">]</span> <span class="token comment"># 删除一项</span>
|
||||
</span><span class="code-line"><span class="token assign-left variable">Fruits</span><span class="token operator">=</span><span class="token punctuation">(</span><span class="token string">"<span class="token variable">${Fruits<span class="token punctuation">[</span>@<span class="token punctuation">]</span>}</span>"</span><span class="token punctuation">)</span> <span class="token comment"># 复制</span>
|
||||
</span><span class="code-line"><span class="token assign-left variable">Fruits</span><span class="token operator">=</span><span class="token punctuation">(</span><span class="token string">"<span class="token variable">${Fruits<span class="token punctuation">[</span>@<span class="token punctuation">]</span>}</span>"</span> <span class="token string">"<span class="token variable">${Veggies<span class="token punctuation">[</span>@<span class="token punctuation">]</span>}</span>"</span><span class="token punctuation">)</span> <span class="token comment"># 连接</span>
|
||||
</span><span class="code-line"><span class="token assign-left variable">lines</span><span class="token operator">=</span><span class="token punctuation">(</span><span class="token variable"><span class="token variable">`</span><span class="token function">cat</span> <span class="token string">"logfile"</span><span class="token variable">`</span></span><span class="token punctuation">)</span> <span class="token comment"># 从文件中读取</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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 line-number" line="1"><span class="token keyword">function</span> <span class="token function-name function">extract</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token builtin class-name">local</span> <span class="token parameter variable">-n</span> <span class="token assign-left variable">myarray</span><span class="token operator">=</span><span class="token variable">$1</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token builtin class-name">local</span> <span class="token assign-left variable">idx</span><span class="token operator">=</span><span class="token variable">$2</span>
|
||||
</span><span class="code-line line-number" line="5"> <span class="token builtin class-name">echo</span> <span class="token string">"<span class="token variable">${myarray<span class="token punctuation">[</span>$idx<span class="token punctuation">]</span>}</span>"</span>
|
||||
</span><span class="code-line line-number" line="6"><span class="token punctuation">}</span>
|
||||
</span><span class="code-line line-number" line="7"><span class="token assign-left variable">Fruits</span><span class="token operator">=</span><span class="token punctuation">(</span><span class="token string">'Apple'</span> <span class="token string">'Banana'</span> <span class="token string">'Orange'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="8">extract Fruits <span class="token number">2</span> <span class="token comment"># => Orangle</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token keyword">function</span> <span class="token function-name function">extract</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token builtin class-name">local</span> <span class="token parameter variable">-n</span> <span class="token assign-left variable">myarray</span><span class="token operator">=</span><span class="token variable">$1</span>
|
||||
</span><span class="code-line"> <span class="token builtin class-name">local</span> <span class="token assign-left variable">idx</span><span class="token operator">=</span><span class="token variable">$2</span>
|
||||
</span><span class="code-line"> <span class="token builtin class-name">echo</span> <span class="token string">"<span class="token variable">${myarray<span class="token punctuation">[</span>$idx<span class="token punctuation">]</span>}</span>"</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span><span class="code-line"><span class="token assign-left variable">Fruits</span><span class="token operator">=</span><span class="token punctuation">(</span><span class="token string">'Apple'</span> <span class="token string">'Banana'</span> <span class="token string">'Orange'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line">extract Fruits <span class="token number">2</span> <span class="token comment"># => Orangle</span>
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap"><div class="wrap-header h2wrap"><h2 id="bash-字典"><a aria-hidden="true" tabindex="-1" href="#bash-字典"><span class="icon icon-link"></span></a>Bash 字典</h2><div class="wrap-body">
|
||||
</div></div><div class="h2wrap-body"><div class="wrap"><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 line-number" line="1"><span class="token builtin class-name">declare</span> <span class="token parameter variable">-A</span> sounds
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token builtin class-name">declare</span> <span class="token parameter variable">-A</span> sounds
|
||||
</span></code></pre>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1">sounds<span class="token punctuation">[</span>dog<span class="token punctuation">]</span><span class="token operator">=</span><span class="token string">"bark"</span>
|
||||
</span><span class="code-line line-number" line="2">sounds<span class="token punctuation">[</span>cow<span class="token punctuation">]</span><span class="token operator">=</span><span class="token string">"moo"</span>
|
||||
</span><span class="code-line line-number" line="3">sounds<span class="token punctuation">[</span>bird<span class="token punctuation">]</span><span class="token operator">=</span><span class="token string">"tweet"</span>
|
||||
</span><span class="code-line line-number" line="4">sounds<span class="token punctuation">[</span>wolf<span class="token punctuation">]</span><span class="token operator">=</span><span class="token string">"howl"</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">sounds<span class="token punctuation">[</span>dog<span class="token punctuation">]</span><span class="token operator">=</span><span class="token string">"bark"</span>
|
||||
</span><span class="code-line">sounds<span class="token punctuation">[</span>cow<span class="token punctuation">]</span><span class="token operator">=</span><span class="token string">"moo"</span>
|
||||
</span><span class="code-line">sounds<span class="token punctuation">[</span>bird<span class="token punctuation">]</span><span class="token operator">=</span><span class="token string">"tweet"</span>
|
||||
</span><span class="code-line">sounds<span class="token punctuation">[</span>wolf<span class="token punctuation">]</span><span class="token operator">=</span><span class="token string">"howl"</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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 line-number" line="1"><span class="token builtin class-name">echo</span> <span class="token variable">${sounds<span class="token punctuation">[</span>dog<span class="token punctuation">]</span>}</span> <span class="token comment"># Dog's sound</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token builtin class-name">echo</span> <span class="token variable">${sounds<span class="token punctuation">[</span>@<span class="token punctuation">]</span>}</span> <span class="token comment"># All values</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token builtin class-name">echo</span> <span class="token variable">${<span class="token operator">!</span>sounds<span class="token punctuation">[</span>@<span class="token punctuation">]</span>}</span> <span class="token comment"># All keys</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token builtin class-name">echo</span> <span class="token variable">${<span class="token operator">#</span>sounds<span class="token punctuation">[</span>@<span class="token punctuation">]</span>}</span> <span class="token comment"># Number of elements</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token builtin class-name">unset</span> sounds<span class="token punctuation">[</span>dog<span class="token punctuation">]</span> <span class="token comment"># Delete dog</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token builtin class-name">echo</span> <span class="token variable">${sounds<span class="token punctuation">[</span>dog<span class="token punctuation">]</span>}</span> <span class="token comment"># Dog's sound</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">echo</span> <span class="token variable">${sounds<span class="token punctuation">[</span>@<span class="token punctuation">]</span>}</span> <span class="token comment"># All values</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">echo</span> <span class="token variable">${<span class="token operator">!</span>sounds<span class="token punctuation">[</span>@<span class="token punctuation">]</span>}</span> <span class="token comment"># All keys</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">echo</span> <span class="token variable">${<span class="token operator">#</span>sounds<span class="token punctuation">[</span>@<span class="token punctuation">]</span>}</span> <span class="token comment"># Number of elements</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">unset</span> sounds<span class="token punctuation">[</span>dog<span class="token punctuation">]</span> <span class="token comment"># Delete dog</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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 line-number" line="1"><span class="token keyword">for</span> <span class="token for-or-select variable">val</span> <span class="token keyword">in</span> <span class="token string">"<span class="token variable">${sounds<span class="token punctuation">[</span>@<span class="token punctuation">]</span>}</span>"</span><span class="token punctuation">;</span> <span class="token keyword">do</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token builtin class-name">echo</span> <span class="token variable">$val</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token keyword">done</span>
|
||||
<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">val</span> <span class="token keyword">in</span> <span class="token string">"<span class="token variable">${sounds<span class="token punctuation">[</span>@<span class="token punctuation">]</span>}</span>"</span><span class="token punctuation">;</span> <span class="token keyword">do</span>
|
||||
</span><span class="code-line"> <span class="token builtin class-name">echo</span> <span class="token variable">$val</span>
|
||||
</span><span class="code-line"><span class="token keyword">done</span>
|
||||
</span></code></pre>
|
||||
<hr>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1"><span class="token keyword">for</span> <span class="token for-or-select variable">key</span> <span class="token keyword">in</span> <span class="token string">"<span class="token variable">${<span class="token operator">!</span>sounds<span class="token punctuation">[</span>@<span class="token punctuation">]</span>}</span>"</span><span class="token punctuation">;</span> <span class="token keyword">do</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token builtin class-name">echo</span> <span class="token variable">$key</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token keyword">done</span>
|
||||
<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">key</span> <span class="token keyword">in</span> <span class="token string">"<span class="token variable">${<span class="token operator">!</span>sounds<span class="token punctuation">[</span>@<span class="token punctuation">]</span>}</span>"</span><span class="token punctuation">;</span> <span class="token keyword">do</span>
|
||||
</span><span class="code-line"> <span class="token builtin class-name">echo</span> <span class="token variable">$key</span>
|
||||
</span><span class="code-line"><span class="token keyword">done</span>
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap"><div class="wrap-header h2wrap"><h2 id="bash-条件句"><a aria-hidden="true" tabindex="-1" href="#bash-条件句"><span class="icon icon-link"></span></a>Bash 条件句</h2><div class="wrap-body">
|
||||
</div></div><div class="h2wrap-body"><div class="wrap"><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">
|
||||
@ -541,38 +541,38 @@
|
||||
</div></div></div><div class="wrap row-span-3"><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-3-->
|
||||
</div></div><div class="h3wrap-body"><div class="wrap"><div class="wrap-header h4wrap"><h4 id="字符串"><a aria-hidden="true" tabindex="-1" href="#字符串"><span class="icon icon-link"></span></a>字符串</h4><div class="wrap-body">
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1"><span class="token keyword">if</span> <span class="token punctuation">[</span><span class="token punctuation">[</span> <span class="token parameter variable">-z</span> <span class="token string">"<span class="token variable">$string</span>"</span> <span class="token punctuation">]</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">then</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token builtin class-name">echo</span> <span class="token string">"String is empty"</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token keyword">elif</span> <span class="token punctuation">[</span><span class="token punctuation">[</span> <span class="token parameter variable">-n</span> <span class="token string">"<span class="token variable">$string</span>"</span> <span class="token punctuation">]</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">then</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token builtin class-name">echo</span> <span class="token string">"String is not empty"</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token keyword">else</span>
|
||||
</span><span class="code-line line-number" line="6"> <span class="token builtin class-name">echo</span> <span class="token string">"This never happens"</span>
|
||||
</span><span class="code-line line-number" line="7"><span class="token keyword">fi</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token keyword">if</span> <span class="token punctuation">[</span><span class="token punctuation">[</span> <span class="token parameter variable">-z</span> <span class="token string">"<span class="token variable">$string</span>"</span> <span class="token punctuation">]</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">then</span>
|
||||
</span><span class="code-line"> <span class="token builtin class-name">echo</span> <span class="token string">"String is empty"</span>
|
||||
</span><span class="code-line"><span class="token keyword">elif</span> <span class="token punctuation">[</span><span class="token punctuation">[</span> <span class="token parameter variable">-n</span> <span class="token string">"<span class="token variable">$string</span>"</span> <span class="token punctuation">]</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">then</span>
|
||||
</span><span class="code-line"> <span class="token builtin class-name">echo</span> <span class="token string">"String is not empty"</span>
|
||||
</span><span class="code-line"><span class="token keyword">else</span>
|
||||
</span><span class="code-line"> <span class="token builtin class-name">echo</span> <span class="token string">"This never happens"</span>
|
||||
</span><span class="code-line"><span class="token keyword">fi</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h4wrap"><h4 id="组合"><a aria-hidden="true" tabindex="-1" href="#组合"><span class="icon icon-link"></span></a>组合</h4><div class="wrap-body">
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1"><span class="token keyword">if</span> <span class="token punctuation">[</span><span class="token punctuation">[</span> X <span class="token operator">&&</span> Y <span class="token punctuation">]</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">then</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token punctuation">..</span>.
|
||||
</span><span class="code-line line-number" line="3"><span class="token keyword">fi</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token keyword">if</span> <span class="token punctuation">[</span><span class="token punctuation">[</span> X <span class="token operator">&&</span> Y <span class="token punctuation">]</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">then</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">..</span>.
|
||||
</span><span class="code-line"><span class="token keyword">fi</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h4wrap"><h4 id="相等"><a aria-hidden="true" tabindex="-1" href="#相等"><span class="icon icon-link"></span></a>相等</h4><div class="wrap-body">
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1"><span class="token keyword">if</span> <span class="token punctuation">[</span><span class="token punctuation">[</span> <span class="token string">"<span class="token variable">$A</span>"</span> <span class="token operator">==</span> <span class="token string">"<span class="token variable">$B</span>"</span> <span class="token punctuation">]</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">then</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token punctuation">..</span>.
|
||||
</span><span class="code-line line-number" line="3"><span class="token keyword">fi</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token keyword">if</span> <span class="token punctuation">[</span><span class="token punctuation">[</span> <span class="token string">"<span class="token variable">$A</span>"</span> <span class="token operator">==</span> <span class="token string">"<span class="token variable">$B</span>"</span> <span class="token punctuation">]</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">then</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">..</span>.
|
||||
</span><span class="code-line"><span class="token keyword">fi</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h4wrap"><h4 id="正则表达式"><a aria-hidden="true" tabindex="-1" href="#正则表达式"><span class="icon icon-link"></span></a>正则表达式</h4><div class="wrap-body">
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1"><span class="token keyword">if</span> <span class="token punctuation">[</span><span class="token punctuation">[</span> <span class="token string">'1. abc'</span> <span class="token operator">=~</span> <span class="token punctuation">(</span><span class="token punctuation">[</span>a-z<span class="token punctuation">]</span>+<span class="token punctuation">)</span> <span class="token punctuation">]</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">then</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token builtin class-name">echo</span> <span class="token variable">${<span class="token environment constant">BASH_REMATCH</span><span class="token punctuation">[</span>1<span class="token punctuation">]</span>}</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token keyword">fi</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token keyword">if</span> <span class="token punctuation">[</span><span class="token punctuation">[</span> <span class="token string">'1. abc'</span> <span class="token operator">=~</span> <span class="token punctuation">(</span><span class="token punctuation">[</span>a-z<span class="token punctuation">]</span>+<span class="token punctuation">)</span> <span class="token punctuation">]</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">then</span>
|
||||
</span><span class="code-line"> <span class="token builtin class-name">echo</span> <span class="token variable">${<span class="token environment constant">BASH_REMATCH</span><span class="token punctuation">[</span>1<span class="token punctuation">]</span>}</span>
|
||||
</span><span class="code-line"><span class="token keyword">fi</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h4wrap"><h4 id="更小"><a aria-hidden="true" tabindex="-1" href="#更小"><span class="icon icon-link"></span></a>更小</h4><div class="wrap-body">
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1"><span class="token keyword">if</span> <span class="token variable"><span class="token punctuation">((</span> $a <span class="token operator"><</span> $b <span class="token punctuation">))</span></span><span class="token punctuation">;</span> <span class="token keyword">then</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token builtin class-name">echo</span> <span class="token string">"<span class="token variable">$a</span> is smaller than <span class="token variable">$b</span>"</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token keyword">fi</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token keyword">if</span> <span class="token variable"><span class="token punctuation">((</span> $a <span class="token operator"><</span> $b <span class="token punctuation">))</span></span><span class="token punctuation">;</span> <span class="token keyword">then</span>
|
||||
</span><span class="code-line"> <span class="token builtin class-name">echo</span> <span class="token string">"<span class="token variable">$a</span> is smaller than <span class="token variable">$b</span>"</span>
|
||||
</span><span class="code-line"><span class="token keyword">fi</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h4wrap"><h4 id="存在"><a aria-hidden="true" tabindex="-1" href="#存在"><span class="icon icon-link"></span></a>存在</h4><div class="wrap-body">
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1"><span class="token keyword">if</span> <span class="token punctuation">[</span><span class="token punctuation">[</span> <span class="token parameter variable">-e</span> <span class="token string">"file.txt"</span> <span class="token punctuation">]</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">then</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token builtin class-name">echo</span> <span class="token string">"file exists"</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token keyword">fi</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token keyword">if</span> <span class="token punctuation">[</span><span class="token punctuation">[</span> <span class="token parameter variable">-e</span> <span class="token string">"file.txt"</span> <span class="token punctuation">]</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">then</span>
|
||||
</span><span class="code-line"> <span class="token builtin class-name">echo</span> <span class="token string">"file exists"</span>
|
||||
</span><span class="code-line"><span class="token keyword">fi</span>
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap 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-->
|
||||
@ -658,156 +658,156 @@
|
||||
|
||||
<table><thead><tr><th align="left">条件</th><th>描述</th></tr></thead><tbody><tr><td align="left"><code>[[ -o noclobber ]]</code></td><td>如果启用 OPTION</td></tr><tr><td align="left"><code>[[ ! EXPR ]]</code></td><td>不是 Not</td></tr><tr><td align="left"><code>[[ X && Y ]]</code></td><td>和 And</td></tr><tr><td align="left"><code>[[ X || Y ]]</code></td><td>或者 Or</td></tr></tbody></table>
|
||||
</div></div></div><div class="wrap"><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 line-number" line="1"><span class="token keyword">if</span> <span class="token punctuation">[</span> <span class="token string">"<span class="token variable">$1</span>"</span> <span class="token operator">=</span> <span class="token string">'y'</span> <span class="token parameter variable">-a</span> <span class="token variable">$2</span> <span class="token parameter variable">-gt</span> <span class="token number">0</span> <span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">then</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token builtin class-name">echo</span> <span class="token string">"yes"</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token keyword">fi</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token keyword">if</span> <span class="token punctuation">[</span> <span class="token string">"<span class="token variable">$1</span>"</span> <span class="token operator">=</span> <span class="token string">'n'</span> <span class="token parameter variable">-o</span> <span class="token variable">$2</span> <span class="token parameter variable">-lt</span> <span class="token number">0</span> <span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">then</span>
|
||||
</span><span class="code-line line-number" line="5"> <span class="token builtin class-name">echo</span> <span class="token string">"no"</span>
|
||||
</span><span class="code-line line-number" line="6"><span class="token keyword">fi</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token keyword">if</span> <span class="token punctuation">[</span> <span class="token string">"<span class="token variable">$1</span>"</span> <span class="token operator">=</span> <span class="token string">'y'</span> <span class="token parameter variable">-a</span> <span class="token variable">$2</span> <span class="token parameter variable">-gt</span> <span class="token number">0</span> <span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">then</span>
|
||||
</span><span class="code-line"> <span class="token builtin class-name">echo</span> <span class="token string">"yes"</span>
|
||||
</span><span class="code-line"><span class="token keyword">fi</span>
|
||||
</span><span class="code-line"><span class="token keyword">if</span> <span class="token punctuation">[</span> <span class="token string">"<span class="token variable">$1</span>"</span> <span class="token operator">=</span> <span class="token string">'n'</span> <span class="token parameter variable">-o</span> <span class="token variable">$2</span> <span class="token parameter variable">-lt</span> <span class="token number">0</span> <span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">then</span>
|
||||
</span><span class="code-line"> <span class="token builtin class-name">echo</span> <span class="token string">"no"</span>
|
||||
</span><span class="code-line"><span class="token keyword">fi</span>
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap"><div class="wrap-header h2wrap"><h2 id="bash-循环"><a aria-hidden="true" tabindex="-1" href="#bash-循环"><span class="icon icon-link"></span></a>Bash 循环</h2><div class="wrap-body">
|
||||
</div></div><div class="h2wrap-body"><div class="wrap"><div class="wrap-header h3wrap"><h3 id="基本-for-循环"><a aria-hidden="true" tabindex="-1" href="#基本-for-循环"><span class="icon icon-link"></span></a>基本 for 循环</h3><div class="wrap-body">
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1"><span class="token keyword">for</span> <span class="token for-or-select variable">i</span> <span class="token keyword">in</span> /etc/rc.*<span class="token punctuation">;</span> <span class="token keyword">do</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token builtin class-name">echo</span> <span class="token variable">$i</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token keyword">done</span>
|
||||
<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">i</span> <span class="token keyword">in</span> /etc/rc.*<span class="token punctuation">;</span> <span class="token keyword">do</span>
|
||||
</span><span class="code-line"> <span class="token builtin class-name">echo</span> <span class="token variable">$i</span>
|
||||
</span><span class="code-line"><span class="token keyword">done</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="类似-c-的-for-循环"><a aria-hidden="true" tabindex="-1" href="#类似-c-的-for-循环"><span class="icon icon-link"></span></a>类似 C 的 for 循环</h3><div class="wrap-body">
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1"><span class="token keyword">for</span> <span class="token variable"><span class="token punctuation">((</span>i <span class="token operator">=</span> <span class="token number">0</span> <span class="token punctuation">;</span> i <span class="token operator"><</span> <span class="token number">100</span> <span class="token punctuation">;</span> i<span class="token operator">++</span><span class="token punctuation">))</span></span><span class="token punctuation">;</span> <span class="token keyword">do</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token builtin class-name">echo</span> <span class="token variable">$i</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token keyword">done</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token keyword">for</span> <span class="token variable"><span class="token punctuation">((</span>i <span class="token operator">=</span> <span class="token number">0</span> <span class="token punctuation">;</span> i <span class="token operator"><</span> <span class="token number">100</span> <span class="token punctuation">;</span> i<span class="token operator">++</span><span class="token punctuation">))</span></span><span class="token punctuation">;</span> <span class="token keyword">do</span>
|
||||
</span><span class="code-line"> <span class="token builtin class-name">echo</span> <span class="token variable">$i</span>
|
||||
</span><span class="code-line"><span class="token keyword">done</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap 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 line-number" line="1"><span class="token keyword">for</span> <span class="token for-or-select variable">i</span> <span class="token keyword">in</span> <span class="token punctuation">{</span><span class="token number">1</span><span class="token punctuation">..</span><span class="token number">5</span><span class="token punctuation">}</span><span class="token punctuation">;</span> <span class="token keyword">do</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token builtin class-name">echo</span> <span class="token string">"Welcome <span class="token variable">$i</span>"</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token keyword">done</span>
|
||||
<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">i</span> <span class="token keyword">in</span> <span class="token punctuation">{</span><span class="token number">1</span><span class="token punctuation">..</span><span class="token number">5</span><span class="token punctuation">}</span><span class="token punctuation">;</span> <span class="token keyword">do</span>
|
||||
</span><span class="code-line"> <span class="token builtin class-name">echo</span> <span class="token string">"Welcome <span class="token variable">$i</span>"</span>
|
||||
</span><span class="code-line"><span class="token keyword">done</span>
|
||||
</span></code></pre>
|
||||
</div></div><div class="h3wrap-body"><div class="wrap"><div class="wrap-header h4wrap"><h4 id="具有步长"><a aria-hidden="true" tabindex="-1" href="#具有步长"><span class="icon icon-link"></span></a>具有步长</h4><div class="wrap-body">
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1"><span class="token keyword">for</span> <span class="token for-or-select variable">i</span> <span class="token keyword">in</span> <span class="token punctuation">{</span><span class="token number">5</span><span class="token punctuation">..</span><span class="token number">50</span><span class="token punctuation">..</span><span class="token number">5</span><span class="token punctuation">}</span><span class="token punctuation">;</span> <span class="token keyword">do</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token builtin class-name">echo</span> <span class="token string">"Welcome <span class="token variable">$i</span>"</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token keyword">done</span>
|
||||
<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">i</span> <span class="token keyword">in</span> <span class="token punctuation">{</span><span class="token number">5</span><span class="token punctuation">..</span><span class="token number">50</span><span class="token punctuation">..</span><span class="token number">5</span><span class="token punctuation">}</span><span class="token punctuation">;</span> <span class="token keyword">do</span>
|
||||
</span><span class="code-line"> <span class="token builtin class-name">echo</span> <span class="token string">"Welcome <span class="token variable">$i</span>"</span>
|
||||
</span><span class="code-line"><span class="token keyword">done</span>
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap"><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 line-number" line="1"><span class="token assign-left variable">i</span><span class="token operator">=</span><span class="token number">1</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token keyword">while</span> <span class="token punctuation">[</span><span class="token punctuation">[</span> <span class="token variable">$i</span> <span class="token parameter variable">-lt</span> <span class="token number">4</span> <span class="token punctuation">]</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">do</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token builtin class-name">echo</span> <span class="token string">"Number: <span class="token variable">$i</span>"</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token variable"><span class="token punctuation">((</span>i<span class="token operator">++</span><span class="token punctuation">))</span></span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token keyword">done</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token assign-left variable">i</span><span class="token operator">=</span><span class="token number">1</span>
|
||||
</span><span class="code-line"><span class="token keyword">while</span> <span class="token punctuation">[</span><span class="token punctuation">[</span> <span class="token variable">$i</span> <span class="token parameter variable">-lt</span> <span class="token number">4</span> <span class="token punctuation">]</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">do</span>
|
||||
</span><span class="code-line"> <span class="token builtin class-name">echo</span> <span class="token string">"Number: <span class="token variable">$i</span>"</span>
|
||||
</span><span class="code-line"> <span class="token variable"><span class="token punctuation">((</span>i<span class="token operator">++</span><span class="token punctuation">))</span></span>
|
||||
</span><span class="code-line"><span class="token keyword">done</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="自动递增-1"><a aria-hidden="true" tabindex="-1" href="#自动递增-1"><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 line-number" line="1"><span class="token assign-left variable">i</span><span class="token operator">=</span><span class="token number">3</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token keyword">while</span> <span class="token punctuation">[</span><span class="token punctuation">[</span> <span class="token variable">$i</span> <span class="token parameter variable">-gt</span> <span class="token number">0</span> <span class="token punctuation">]</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">do</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token builtin class-name">echo</span> <span class="token string">"Number: <span class="token variable">$i</span>"</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token variable"><span class="token punctuation">((</span>i<span class="token operator">--</span><span class="token punctuation">))</span></span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token keyword">done</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token assign-left variable">i</span><span class="token operator">=</span><span class="token number">3</span>
|
||||
</span><span class="code-line"><span class="token keyword">while</span> <span class="token punctuation">[</span><span class="token punctuation">[</span> <span class="token variable">$i</span> <span class="token parameter variable">-gt</span> <span class="token number">0</span> <span class="token punctuation">]</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">do</span>
|
||||
</span><span class="code-line"> <span class="token builtin class-name">echo</span> <span class="token string">"Number: <span class="token variable">$i</span>"</span>
|
||||
</span><span class="code-line"> <span class="token variable"><span class="token punctuation">((</span>i<span class="token operator">--</span><span class="token punctuation">))</span></span>
|
||||
</span><span class="code-line"><span class="token keyword">done</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="continue"><a aria-hidden="true" tabindex="-1" href="#continue"><span class="icon icon-link"></span></a>Continue</h3><div class="wrap-body">
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1"><span class="token keyword">for</span> <span class="token for-or-select variable">number</span> <span class="token keyword">in</span> <span class="token variable"><span class="token variable">$(</span><span class="token function">seq</span> <span class="token number">1</span> <span class="token number">3</span><span class="token variable">)</span></span><span class="token punctuation">;</span> <span class="token keyword">do</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token keyword">if</span> <span class="token punctuation">[</span><span class="token punctuation">[</span> <span class="token variable">$number</span> <span class="token operator">==</span> <span class="token number">2</span> <span class="token punctuation">]</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">then</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token builtin class-name">continue</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token keyword">fi</span>
|
||||
</span><span class="code-line line-number" line="5"> <span class="token builtin class-name">echo</span> <span class="token string">"<span class="token variable">$number</span>"</span>
|
||||
</span><span class="code-line line-number" line="6"><span class="token keyword">done</span>
|
||||
<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">number</span> <span class="token keyword">in</span> <span class="token variable"><span class="token variable">$(</span><span class="token function">seq</span> <span class="token number">1</span> <span class="token number">3</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 keyword">if</span> <span class="token punctuation">[</span><span class="token punctuation">[</span> <span class="token variable">$number</span> <span class="token operator">==</span> <span class="token number">2</span> <span class="token punctuation">]</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">then</span>
|
||||
</span><span class="code-line"> <span class="token builtin class-name">continue</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"> <span class="token keyword">fi</span>
|
||||
</span><span class="code-line"> <span class="token builtin class-name">echo</span> <span class="token string">"<span class="token variable">$number</span>"</span>
|
||||
</span><span class="code-line"><span class="token keyword">done</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="break"><a aria-hidden="true" tabindex="-1" href="#break"><span class="icon icon-link"></span></a>Break</h3><div class="wrap-body">
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1"><span class="token keyword">for</span> <span class="token for-or-select variable">number</span> <span class="token keyword">in</span> <span class="token variable"><span class="token variable">$(</span><span class="token function">seq</span> <span class="token number">1</span> <span class="token number">3</span><span class="token variable">)</span></span><span class="token punctuation">;</span> <span class="token keyword">do</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token keyword">if</span> <span class="token punctuation">[</span><span class="token punctuation">[</span> <span class="token variable">$number</span> <span class="token operator">==</span> <span class="token number">2</span> <span class="token punctuation">]</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">then</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token comment"># Skip entire rest of loop.</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token builtin class-name">break</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="5"> <span class="token keyword">fi</span>
|
||||
</span><span class="code-line line-number" line="6"> <span class="token comment"># This will only print 1</span>
|
||||
</span><span class="code-line line-number" line="7"> <span class="token builtin class-name">echo</span> <span class="token string">"<span class="token variable">$number</span>"</span>
|
||||
</span><span class="code-line line-number" line="8"><span class="token keyword">done</span>
|
||||
<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">number</span> <span class="token keyword">in</span> <span class="token variable"><span class="token variable">$(</span><span class="token function">seq</span> <span class="token number">1</span> <span class="token number">3</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 keyword">if</span> <span class="token punctuation">[</span><span class="token punctuation">[</span> <span class="token variable">$number</span> <span class="token operator">==</span> <span class="token number">2</span> <span class="token punctuation">]</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">then</span>
|
||||
</span><span class="code-line"> <span class="token comment"># Skip entire rest of loop.</span>
|
||||
</span><span class="code-line"> <span class="token builtin class-name">break</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"> <span class="token keyword">fi</span>
|
||||
</span><span class="code-line"> <span class="token comment"># This will only print 1</span>
|
||||
</span><span class="code-line"> <span class="token builtin class-name">echo</span> <span class="token string">"<span class="token variable">$number</span>"</span>
|
||||
</span><span class="code-line"><span class="token keyword">done</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="until"><a aria-hidden="true" tabindex="-1" href="#until"><span class="icon icon-link"></span></a>Until</h3><div class="wrap-body">
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1"><span class="token assign-left variable">count</span><span class="token operator">=</span><span class="token number">0</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token keyword">until</span> <span class="token punctuation">[</span> <span class="token variable">$count</span> <span class="token parameter variable">-gt</span> <span class="token number">10</span> <span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">do</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token builtin class-name">echo</span> <span class="token string">"<span class="token variable">$count</span>"</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token variable"><span class="token punctuation">((</span>count<span class="token operator">++</span><span class="token punctuation">))</span></span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token keyword">done</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token assign-left variable">count</span><span class="token operator">=</span><span class="token number">0</span>
|
||||
</span><span class="code-line"><span class="token keyword">until</span> <span class="token punctuation">[</span> <span class="token variable">$count</span> <span class="token parameter variable">-gt</span> <span class="token number">10</span> <span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">do</span>
|
||||
</span><span class="code-line"> <span class="token builtin class-name">echo</span> <span class="token string">"<span class="token variable">$count</span>"</span>
|
||||
</span><span class="code-line"> <span class="token variable"><span class="token punctuation">((</span>count<span class="token operator">++</span><span class="token punctuation">))</span></span>
|
||||
</span><span class="code-line"><span class="token keyword">done</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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 line-number" line="1"><span class="token keyword">while</span> <span class="token boolean">true</span><span class="token punctuation">;</span> <span class="token keyword">do</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token comment"># here is some code.</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token keyword">done</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token keyword">while</span> <span class="token boolean">true</span><span class="token punctuation">;</span> <span class="token keyword">do</span>
|
||||
</span><span class="code-line"> <span class="token comment"># here is some code.</span>
|
||||
</span><span class="code-line"><span class="token keyword">done</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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 line-number" line="1"><span class="token keyword">while</span> <span class="token builtin class-name">:</span><span class="token punctuation">;</span> <span class="token keyword">do</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token comment"># here is some code.</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token keyword">done</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token keyword">while</span> <span class="token builtin class-name">:</span><span class="token punctuation">;</span> <span class="token keyword">do</span>
|
||||
</span><span class="code-line"> <span class="token comment"># here is some code.</span>
|
||||
</span><span class="code-line"><span class="token keyword">done</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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 line-number" line="1"><span class="token function">cat</span> file.txt <span class="token operator">|</span> <span class="token keyword">while</span> <span class="token builtin class-name">read</span> line<span class="token punctuation">;</span> <span class="token keyword">do</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token builtin class-name">echo</span> <span class="token variable">$line</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token keyword">done</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token function">cat</span> file.txt <span class="token operator">|</span> <span class="token keyword">while</span> <span class="token builtin class-name">read</span> line<span class="token punctuation">;</span> <span class="token keyword">do</span>
|
||||
</span><span class="code-line"> <span class="token builtin class-name">echo</span> <span class="token variable">$line</span>
|
||||
</span><span class="code-line"><span class="token keyword">done</span>
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap"><div class="wrap-header h2wrap"><h2 id="bash-函数"><a aria-hidden="true" tabindex="-1" href="#bash-函数"><span class="icon icon-link"></span></a>Bash 函数</h2><div class="wrap-body">
|
||||
</div></div><div class="h2wrap-body"><div class="wrap"><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 line-number" line="1"><span class="token function-name function">myfunc</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token builtin class-name">echo</span> <span class="token string">"hello <span class="token variable">$1</span>"</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token punctuation">}</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token function-name function">myfunc</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 string">"hello <span class="token variable">$1</span>"</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1"><span class="token comment"># 同上(替代语法)</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token keyword">function</span> <span class="token function-name function">myfunc</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token builtin class-name">echo</span> <span class="token string">"hello <span class="token variable">$1</span>"</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token punctuation">}</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token comment"># 同上(替代语法)</span>
|
||||
</span><span class="code-line"><span class="token keyword">function</span> <span class="token function-name function">myfunc</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 string">"hello <span class="token variable">$1</span>"</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1">myfunc <span class="token string">"John"</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">myfunc <span class="token string">"John"</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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 line-number" line="1"><span class="token function-name function">myfunc</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token builtin class-name">local</span> <span class="token assign-left variable">myresult</span><span class="token operator">=</span><span class="token string">'some value'</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token builtin class-name">echo</span> <span class="token variable">$myresult</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token punctuation">}</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token function-name function">myfunc</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">local</span> <span class="token assign-left variable">myresult</span><span class="token operator">=</span><span class="token string">'some value'</span>
|
||||
</span><span class="code-line"> <span class="token builtin class-name">echo</span> <span class="token variable">$myresult</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1"><span class="token assign-left variable">result</span><span class="token operator">=</span><span class="token string">"<span class="token variable"><span class="token variable">$(</span>myfunc<span class="token variable">)</span></span>"</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token assign-left variable">result</span><span class="token operator">=</span><span class="token string">"<span class="token variable"><span class="token variable">$(</span>myfunc<span class="token variable">)</span></span>"</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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 line-number" line="1"><span class="token function-name function">myfunc</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token builtin class-name">return</span> <span class="token number">1</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token punctuation">}</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token function-name function">myfunc</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">return</span> <span class="token number">1</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1"><span class="token keyword">if</span> myfunc<span class="token punctuation">;</span> <span class="token keyword">then</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token builtin class-name">echo</span> <span class="token string">"success"</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token keyword">else</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token builtin class-name">echo</span> <span class="token string">"failure"</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token keyword">fi</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token keyword">if</span> myfunc<span class="token punctuation">;</span> <span class="token keyword">then</span>
|
||||
</span><span class="code-line"> <span class="token builtin class-name">echo</span> <span class="token string">"success"</span>
|
||||
</span><span class="code-line"><span class="token keyword">else</span>
|
||||
</span><span class="code-line"> <span class="token builtin class-name">echo</span> <span class="token string">"failure"</span>
|
||||
</span><span class="code-line"><span class="token keyword">fi</span>
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap"><div class="wrap-header h2wrap"><h2 id="bash-选项"><a aria-hidden="true" tabindex="-1" href="#bash-选项"><span class="icon icon-link"></span></a>Bash 选项</h2><div class="wrap-body">
|
||||
<!--rehype:body-class=cols-2-->
|
||||
</div></div><div class="h2wrap-body cols-2"><div class="wrap"><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 line-number" line="1"><span class="token comment"># 避免覆盖文件</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token comment"># (echo "hi" > foo)</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token builtin class-name">set</span> <span class="token parameter variable">-o</span> noclobber
|
||||
</span><span class="code-line line-number" line="4">
|
||||
</span><span class="code-line line-number" line="5"><span class="token comment"># 用于出错时退出</span>
|
||||
</span><span class="code-line line-number" line="6"><span class="token comment"># 避免级联错误</span>
|
||||
</span><span class="code-line line-number" line="7"><span class="token builtin class-name">set</span> <span class="token parameter variable">-o</span> errexit
|
||||
</span><span class="code-line line-number" line="8">
|
||||
</span><span class="code-line line-number" line="9"><span class="token comment"># 揭示隐藏的失败</span>
|
||||
</span><span class="code-line line-number" line="10"><span class="token builtin class-name">set</span> <span class="token parameter variable">-o</span> pipefail
|
||||
</span><span class="code-line line-number" line="11">
|
||||
</span><span class="code-line line-number" line="12"><span class="token comment"># 公开未设置的变量</span>
|
||||
</span><span class="code-line line-number" line="13"><span class="token builtin class-name">set</span> <span class="token parameter variable">-o</span> nounset
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token comment"># 避免覆盖文件</span>
|
||||
</span><span class="code-line"><span class="token comment"># (echo "hi" > foo)</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">set</span> <span class="token parameter variable">-o</span> noclobber
|
||||
</span><span class="code-line">
|
||||
</span><span class="code-line"><span class="token comment"># 用于出错时退出</span>
|
||||
</span><span class="code-line"><span class="token comment"># 避免级联错误</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">set</span> <span class="token parameter variable">-o</span> errexit
|
||||
</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">set</span> <span class="token parameter variable">-o</span> pipefail
|
||||
</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">set</span> <span class="token parameter variable">-o</span> nounset
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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 line-number" line="1"><span class="token comment"># 不匹配的 glob 被删除</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token comment"># ('*.foo' => '')</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token builtin class-name">shopt</span> <span class="token parameter variable">-s</span> nullglob
|
||||
</span><span class="code-line line-number" line="4">
|
||||
</span><span class="code-line line-number" line="5"><span class="token comment"># 不匹配的 glob 抛出错误</span>
|
||||
</span><span class="code-line line-number" line="6"><span class="token builtin class-name">shopt</span> <span class="token parameter variable">-s</span> failglob
|
||||
</span><span class="code-line line-number" line="7">
|
||||
</span><span class="code-line line-number" line="8"><span class="token comment"># 不区分大小写的球体</span>
|
||||
</span><span class="code-line line-number" line="9"><span class="token builtin class-name">shopt</span> <span class="token parameter variable">-s</span> nocaseglob
|
||||
</span><span class="code-line line-number" line="10">
|
||||
</span><span class="code-line line-number" line="11"><span class="token comment"># 通配符匹配点文件</span>
|
||||
</span><span class="code-line line-number" line="12"><span class="token comment"># ("*.sh" => ".foo.sh")</span>
|
||||
</span><span class="code-line line-number" line="13"><span class="token builtin class-name">shopt</span> <span class="token parameter variable">-s</span> dotglob
|
||||
</span><span class="code-line line-number" line="14">
|
||||
</span><span class="code-line line-number" line="15"><span class="token comment"># 允许 ** 进行递归匹配</span>
|
||||
</span><span class="code-line line-number" line="16"><span class="token comment"># ('lib/**/*.rb' => 'lib/a/b/c.rb')</span>
|
||||
</span><span class="code-line line-number" line="17"><span class="token builtin class-name">shopt</span> <span class="token parameter variable">-s</span> globstar
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token comment"># 不匹配的 glob 被删除</span>
|
||||
</span><span class="code-line"><span class="token comment"># ('*.foo' => '')</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">shopt</span> <span class="token parameter variable">-s</span> nullglob
|
||||
</span><span class="code-line">
|
||||
</span><span class="code-line"><span class="token comment"># 不匹配的 glob 抛出错误</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">shopt</span> <span class="token parameter variable">-s</span> failglob
|
||||
</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">shopt</span> <span class="token parameter variable">-s</span> nocaseglob
|
||||
</span><span class="code-line">
|
||||
</span><span class="code-line"><span class="token comment"># 通配符匹配点文件</span>
|
||||
</span><span class="code-line"><span class="token comment"># ("*.sh" => ".foo.sh")</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">shopt</span> <span class="token parameter variable">-s</span> dotglob
|
||||
</span><span class="code-line">
|
||||
</span><span class="code-line"><span class="token comment"># 允许 ** 进行递归匹配</span>
|
||||
</span><span class="code-line"><span class="token comment"># ('lib/**/*.rb' => 'lib/a/b/c.rb')</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">shopt</span> <span class="token parameter variable">-s</span> globstar
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap"><div class="wrap-header h2wrap"><h2 id="bash-历史"><a aria-hidden="true" tabindex="-1" href="#bash-历史"><span class="icon icon-link"></span></a>Bash 历史</h2><div class="wrap-body">
|
||||
<!--rehype:body-class=cols-2-->
|
||||
@ -931,87 +931,87 @@
|
||||
<p><code>!!</code> 可以替换为任何有效的扩展,即 <code>!cat</code>、<code>!-2</code>、<code>!42</code> 等。</p>
|
||||
</div></div></div></div></div><div class="wrap"><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"><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 line-number" line="1"><span class="token variable"><span class="token variable">$((</span>a <span class="token operator">+</span> <span class="token number">200</span><span class="token variable">))</span></span> <span class="token comment"># Add 200 to $a</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token variable"><span class="token variable">$((</span>a <span class="token operator">+</span> <span class="token number">200</span><span class="token variable">))</span></span> <span class="token comment"># Add 200 to $a</span>
|
||||
</span></code></pre>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1"><span class="token variable"><span class="token variable">$((</span>$RANDOM<span class="token operator">%</span><span class="token number">200</span><span class="token variable">))</span></span> <span class="token comment"># Random number 0..199</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token variable"><span class="token variable">$((</span>$RANDOM<span class="token operator">%</span><span class="token number">200</span><span class="token variable">))</span></span> <span class="token comment"># Random number 0..199</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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 line-number" line="1"><span class="token punctuation">(</span>cd somedir<span class="token punctuation">;</span> <span class="token builtin class-name">echo</span> <span class="token string">"I'm now in <span class="token environment constant">$PWD</span>"</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token builtin class-name">pwd</span> <span class="token comment"># still in first directory</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token punctuation">(</span>cd somedir<span class="token punctuation">;</span> <span class="token builtin class-name">echo</span> <span class="token string">"I'm now in <span class="token environment constant">$PWD</span>"</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">pwd</span> <span class="token comment"># still in first directory</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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 line-number" line="1"><span class="token builtin class-name">command</span> <span class="token parameter variable">-V</span> <span class="token builtin class-name">cd</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token comment">#=> "cd is a function/alias/whatever"</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token builtin class-name">command</span> <span class="token parameter variable">-V</span> <span class="token builtin class-name">cd</span>
|
||||
</span><span class="code-line"><span class="token comment">#=> "cd is a function/alias/whatever"</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap row-span-2 col-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 col-span-2-->
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1">python hello.py <span class="token operator">></span> output.txt <span class="token comment"># 标准输出到(文件)</span>
|
||||
</span><span class="code-line line-number" line="2">python hello.py <span class="token operator">>></span> output.txt <span class="token comment"># 标准输出到(文件),追加</span>
|
||||
</span><span class="code-line line-number" line="3">python hello.py <span class="token operator"><span class="token file-descriptor important">2</span>></span> error.log <span class="token comment"># 标准错误到(文件)</span>
|
||||
</span><span class="code-line line-number" line="4">python hello.py <span class="token operator"><span class="token file-descriptor important">2</span>></span><span class="token file-descriptor important">&1</span> <span class="token comment"># 标准错误到标准输出</span>
|
||||
</span><span class="code-line line-number" line="5">python hello.py <span class="token operator"><span class="token file-descriptor important">2</span>></span>/dev/null <span class="token comment"># 标准错误到(空null)</span>
|
||||
</span><span class="code-line line-number" line="6">python hello.py <span class="token operator">&></span>/dev/null <span class="token comment"># 标准输出和标准错误到(空null)</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">python hello.py <span class="token operator">></span> output.txt <span class="token comment"># 标准输出到(文件)</span>
|
||||
</span><span class="code-line">python hello.py <span class="token operator">>></span> output.txt <span class="token comment"># 标准输出到(文件),追加</span>
|
||||
</span><span class="code-line">python hello.py <span class="token operator"><span class="token file-descriptor important">2</span>></span> error.log <span class="token comment"># 标准错误到(文件)</span>
|
||||
</span><span class="code-line">python hello.py <span class="token operator"><span class="token file-descriptor important">2</span>></span><span class="token file-descriptor important">&1</span> <span class="token comment"># 标准错误到标准输出</span>
|
||||
</span><span class="code-line">python hello.py <span class="token operator"><span class="token file-descriptor important">2</span>></span>/dev/null <span class="token comment"># 标准错误到(空null)</span>
|
||||
</span><span class="code-line">python hello.py <span class="token operator">&></span>/dev/null <span class="token comment"># 标准输出和标准错误到(空null)</span>
|
||||
</span></code></pre>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1">python hello.py <span class="token operator"><</span> foo.txt <span class="token comment"># 将 foo.txt 提供给 python 的标准输入</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">python hello.py <span class="token operator"><</span> foo.txt <span class="token comment"># 将 foo.txt 提供给 python 的标准输入</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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 line-number" line="1"><span class="token builtin class-name">source</span> <span class="token string">"<span class="token variable">${0<span class="token operator">%</span><span class="token operator">/</span>*}</span>/../share/foo.sh"</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token builtin class-name">source</span> <span class="token string">"<span class="token variable">${0<span class="token operator">%</span><span class="token operator">/</span>*}</span>/../share/foo.sh"</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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 line-number" line="1"><span class="token assign-left variable">DIR</span><span class="token operator">=</span><span class="token string">"<span class="token variable">${0<span class="token operator">%</span><span class="token operator">/</span>*}</span>"</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token assign-left variable">DIR</span><span class="token operator">=</span><span class="token string">"<span class="token variable">${0<span class="token operator">%</span><span class="token operator">/</span>*}</span>"</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="caseswitch"><a aria-hidden="true" tabindex="-1" href="#caseswitch"><span class="icon icon-link"></span></a>Case/switch</h3><div class="wrap-body">
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1"><span class="token keyword">case</span> <span class="token string">"<span class="token variable">$1</span>"</span> <span class="token keyword">in</span>
|
||||
</span><span class="code-line line-number" line="2"> start <span class="token operator">|</span> up<span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="3"> vagrant up
|
||||
</span><span class="code-line line-number" line="4"> <span class="token punctuation">;</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="5"> *<span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="6"> <span class="token builtin class-name">echo</span> <span class="token string">"Usage: <span class="token variable">$0</span> {start|stop|ssh}"</span>
|
||||
</span><span class="code-line line-number" line="7"> <span class="token punctuation">;</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="8"><span class="token keyword">esac</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token keyword">case</span> <span class="token string">"<span class="token variable">$1</span>"</span> <span class="token keyword">in</span>
|
||||
</span><span class="code-line"> start <span class="token operator">|</span> up<span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> vagrant up
|
||||
</span><span class="code-line"> <span class="token punctuation">;</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"> *<span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> <span class="token builtin class-name">echo</span> <span class="token string">"Usage: <span class="token variable">$0</span> {start|stop|ssh}"</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">;</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token keyword">esac</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap col-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=col-span-2-->
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1"><span class="token builtin class-name">trap</span> <span class="token string">'echo Error at about $LINENO'</span> ERR
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token builtin class-name">trap</span> <span class="token string">'echo Error at about $LINENO'</span> ERR
|
||||
</span></code></pre>
|
||||
<p>或者</p>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1"><span class="token function-name function">traperr</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token builtin class-name">echo</span> <span class="token string">"ERROR: <span class="token variable">${<span class="token environment constant">BASH_SOURCE</span><span class="token punctuation">[</span>1<span class="token punctuation">]</span>}</span> at about <span class="token variable">${<span class="token environment constant">BASH_LINENO</span><span class="token punctuation">[</span>0<span class="token punctuation">]</span>}</span>"</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token punctuation">}</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token builtin class-name">set</span> <span class="token parameter variable">-o</span> errtrace
|
||||
</span><span class="code-line line-number" line="5"><span class="token builtin class-name">trap</span> traperr ERR
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token function-name function">traperr</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 string">"ERROR: <span class="token variable">${<span class="token environment constant">BASH_SOURCE</span><span class="token punctuation">[</span>1<span class="token punctuation">]</span>}</span> at about <span class="token variable">${<span class="token environment constant">BASH_LINENO</span><span class="token punctuation">[</span>0<span class="token punctuation">]</span>}</span>"</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">set</span> <span class="token parameter variable">-o</span> errtrace
|
||||
</span><span class="code-line"><span class="token builtin class-name">trap</span> traperr ERR
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="printf"><a aria-hidden="true" tabindex="-1" href="#printf"><span class="icon icon-link"></span></a>printf</h3><div class="wrap-body">
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1"><span class="token builtin class-name">printf</span> <span class="token string">"Hello %s, I'm %s"</span> Sven Olga
|
||||
</span><span class="code-line line-number" line="2"><span class="token comment">#=> "Hello Sven, I'm Olga</span>
|
||||
</span><span class="code-line line-number" line="3">
|
||||
</span><span class="code-line line-number" line="4"><span class="token builtin class-name">printf</span> <span class="token string">"1 + 1 = %d"</span> <span class="token number">2</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token comment">#=> "1 + 1 = 2"</span>
|
||||
</span><span class="code-line line-number" line="6">
|
||||
</span><span class="code-line line-number" line="7"><span class="token builtin class-name">printf</span> <span class="token string">"Print a float: %f"</span> <span class="token number">2</span>
|
||||
</span><span class="code-line line-number" line="8"><span class="token comment">#=> "Print a float: 2.000000"</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token builtin class-name">printf</span> <span class="token string">"Hello %s, I'm %s"</span> Sven Olga
|
||||
</span><span class="code-line"><span class="token comment">#=> "Hello Sven, I'm Olga</span>
|
||||
</span><span class="code-line">
|
||||
</span><span class="code-line"><span class="token builtin class-name">printf</span> <span class="token string">"1 + 1 = %d"</span> <span class="token number">2</span>
|
||||
</span><span class="code-line"><span class="token comment">#=> "1 + 1 = 2"</span>
|
||||
</span><span class="code-line">
|
||||
</span><span class="code-line"><span class="token builtin class-name">printf</span> <span class="token string">"Print a float: %f"</span> <span class="token number">2</span>
|
||||
</span><span class="code-line"><span class="token comment">#=> "Print a float: 2.000000"</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap col-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=col-span-2-->
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1"><span class="token keyword">while</span> <span class="token punctuation">[</span><span class="token punctuation">[</span> <span class="token string">"<span class="token variable">$1</span>"</span> <span class="token operator">=~</span> ^- <span class="token operator">&&</span> <span class="token operator">!</span> <span class="token string">"<span class="token variable">$1</span>"</span> <span class="token operator">==</span> <span class="token string">"--"</span> <span class="token punctuation">]</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">do</span> <span class="token keyword">case</span> <span class="token variable">$1</span> <span class="token keyword">in</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token parameter variable">-V</span> <span class="token operator">|</span> <span class="token parameter variable">--version</span> <span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token builtin class-name">echo</span> <span class="token variable">$version</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token builtin class-name">exit</span>
|
||||
</span><span class="code-line line-number" line="5"> <span class="token punctuation">;</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="6"> <span class="token parameter variable">-s</span> <span class="token operator">|</span> <span class="token parameter variable">--string</span> <span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="7"> <span class="token builtin class-name">shift</span><span class="token punctuation">;</span> <span class="token assign-left variable">string</span><span class="token operator">=</span><span class="token variable">$1</span>
|
||||
</span><span class="code-line line-number" line="8"> <span class="token punctuation">;</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="9"> <span class="token parameter variable">-f</span> <span class="token operator">|</span> <span class="token parameter variable">--flag</span> <span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="10"> <span class="token assign-left variable">flag</span><span class="token operator">=</span><span class="token number">1</span>
|
||||
</span><span class="code-line line-number" line="11"> <span class="token punctuation">;</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="12"><span class="token keyword">esac</span><span class="token punctuation">;</span> <span class="token builtin class-name">shift</span><span class="token punctuation">;</span> <span class="token keyword">done</span>
|
||||
</span><span class="code-line line-number" line="13"><span class="token keyword">if</span> <span class="token punctuation">[</span><span class="token punctuation">[</span> <span class="token string">"<span class="token variable">$1</span>"</span> <span class="token operator">==</span> <span class="token string">'--'</span> <span class="token punctuation">]</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">then</span> <span class="token builtin class-name">shift</span><span class="token punctuation">;</span> <span class="token keyword">fi</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token keyword">while</span> <span class="token punctuation">[</span><span class="token punctuation">[</span> <span class="token string">"<span class="token variable">$1</span>"</span> <span class="token operator">=~</span> ^- <span class="token operator">&&</span> <span class="token operator">!</span> <span class="token string">"<span class="token variable">$1</span>"</span> <span class="token operator">==</span> <span class="token string">"--"</span> <span class="token punctuation">]</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">do</span> <span class="token keyword">case</span> <span class="token variable">$1</span> <span class="token keyword">in</span>
|
||||
</span><span class="code-line"> <span class="token parameter variable">-V</span> <span class="token operator">|</span> <span class="token parameter variable">--version</span> <span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> <span class="token builtin class-name">echo</span> <span class="token variable">$version</span>
|
||||
</span><span class="code-line"> <span class="token builtin class-name">exit</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">;</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"> <span class="token parameter variable">-s</span> <span class="token operator">|</span> <span class="token parameter variable">--string</span> <span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> <span class="token builtin class-name">shift</span><span class="token punctuation">;</span> <span class="token assign-left variable">string</span><span class="token operator">=</span><span class="token variable">$1</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">;</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"> <span class="token parameter variable">-f</span> <span class="token operator">|</span> <span class="token parameter variable">--flag</span> <span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> <span class="token assign-left variable">flag</span><span class="token operator">=</span><span class="token number">1</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">;</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token keyword">esac</span><span class="token punctuation">;</span> <span class="token builtin class-name">shift</span><span class="token punctuation">;</span> <span class="token keyword">done</span>
|
||||
</span><span class="code-line"><span class="token keyword">if</span> <span class="token punctuation">[</span><span class="token punctuation">[</span> <span class="token string">"<span class="token variable">$1</span>"</span> <span class="token operator">==</span> <span class="token string">'--'</span> <span class="token punctuation">]</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">then</span> <span class="token builtin class-name">shift</span><span class="token punctuation">;</span> <span class="token keyword">fi</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap col-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=col-span-2-->
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1"><span class="token keyword">if</span> <span class="token function">ping</span> <span class="token parameter variable">-c</span> <span class="token number">1</span> google.com<span class="token punctuation">;</span> <span class="token keyword">then</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token builtin class-name">echo</span> <span class="token string">"看来您的互联网连接正常"</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token keyword">fi</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token keyword">if</span> <span class="token function">ping</span> <span class="token parameter variable">-c</span> <span class="token number">1</span> google.com<span class="token punctuation">;</span> <span class="token keyword">then</span>
|
||||
</span><span class="code-line"> <span class="token builtin class-name">echo</span> <span class="token string">"看来您的互联网连接正常"</span>
|
||||
</span><span class="code-line"><span class="token keyword">fi</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap 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-->
|
||||
@ -1044,9 +1044,9 @@
|
||||
<p>见<a href="http://wiki.bash-hackers.org/syntax/shellvars#special_parameters_and_shell_variables">特殊参数</a>。</p>
|
||||
</div></div></div><div class="wrap col-span-2"><div class="wrap-header h3wrap"><h3 id="grep-检查"><a aria-hidden="true" tabindex="-1" href="#grep-检查"><span class="icon icon-link"></span></a>grep 检查</h3><div class="wrap-body">
|
||||
<!--rehype:wrap-class=col-span-2-->
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1"><span class="token keyword">if</span> <span class="token function">grep</span> <span class="token parameter variable">-q</span> <span class="token string">'foo'</span> ~/.bash_history<span class="token punctuation">;</span> <span class="token keyword">then</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token builtin class-name">echo</span> <span class="token string">"您过去似乎输入过“foo”"</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token keyword">fi</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token keyword">if</span> <span class="token function">grep</span> <span class="token parameter variable">-q</span> <span class="token string">'foo'</span> ~/.bash_history<span class="token punctuation">;</span> <span class="token keyword">then</span>
|
||||
</span><span class="code-line"> <span class="token builtin class-name">echo</span> <span class="token string">"您过去似乎输入过“foo”"</span>
|
||||
</span><span class="code-line"><span class="token keyword">fi</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap 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-->
|
||||
@ -1078,38 +1078,38 @@
|
||||
<!--rehype:className=cols-4 style-none-->
|
||||
<p>使用 <code>\</code> 转义这些特殊字符</p>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="heredoc"><a aria-hidden="true" tabindex="-1" href="#heredoc"><span class="icon icon-link"></span></a>Heredoc</h3><div class="wrap-body">
|
||||
<pre class="language-sh"><code class="language-sh code-highlight"><span class="code-line line-number" line="1"><span class="token function">cat</span> <span class="token operator"><<</span><span class="token string">END
|
||||
</span></span><span class="code-line line-number" line="2"><span class="token string">hello world
|
||||
</span></span><span class="code-line line-number" line="3"><span class="token string">END</span>
|
||||
<pre class="language-sh"><code class="language-sh code-highlight"><span class="code-line"><span class="token function">cat</span> <span class="token operator"><<</span><span class="token string">END
|
||||
</span></span><span class="code-line"><span class="token string">hello world
|
||||
</span></span><span class="code-line"><span class="token string">END</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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 line-number" line="1"><span class="token builtin class-name">pwd</span> <span class="token comment"># /home/user/foo</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token builtin class-name">cd</span> bar/
|
||||
</span><span class="code-line line-number" line="3"><span class="token builtin class-name">pwd</span> <span class="token comment"># /home/user/foo/bar</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token builtin class-name">cd</span> -
|
||||
</span><span class="code-line line-number" line="5"><span class="token builtin class-name">pwd</span> <span class="token comment"># /home/user/foo</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token builtin class-name">pwd</span> <span class="token comment"># /home/user/foo</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">cd</span> bar/
|
||||
</span><span class="code-line"><span class="token builtin class-name">pwd</span> <span class="token comment"># /home/user/foo/bar</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">cd</span> -
|
||||
</span><span class="code-line"><span class="token builtin class-name">pwd</span> <span class="token comment"># /home/user/foo</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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 line-number" line="1"><span class="token builtin class-name">echo</span> <span class="token parameter variable">-n</span> <span class="token string">"Proceed? [y/n]: "</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token builtin class-name">read</span> ans
|
||||
</span><span class="code-line line-number" line="3"><span class="token builtin class-name">echo</span> <span class="token variable">$ans</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token builtin class-name">echo</span> <span class="token parameter variable">-n</span> <span class="token string">"Proceed? [y/n]: "</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">read</span> ans
|
||||
</span><span class="code-line"><span class="token builtin class-name">echo</span> <span class="token variable">$ans</span>
|
||||
</span></code></pre>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1"><span class="token builtin class-name">read</span> <span class="token parameter variable">-n</span> <span class="token number">1</span> ans <span class="token comment"># 只有一个字符</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token builtin class-name">read</span> <span class="token parameter variable">-n</span> <span class="token number">1</span> ans <span class="token comment"># 只有一个字符</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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 line-number" line="1"><span class="token function">git</span> commit <span class="token operator">&&</span> <span class="token function">git</span> push
|
||||
</span><span class="code-line line-number" line="2"><span class="token function">git</span> commit <span class="token operator">||</span> <span class="token builtin class-name">echo</span> <span class="token string">"Commit failed"</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token function">git</span> commit <span class="token operator">&&</span> <span class="token function">git</span> push
|
||||
</span><span class="code-line"><span class="token function">git</span> commit <span class="token operator">||</span> <span class="token builtin class-name">echo</span> <span class="token string">"Commit failed"</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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 line-number" line="1"><span class="token builtin class-name">set</span> <span class="token parameter variable">-euo</span> pipefail
|
||||
</span><span class="code-line line-number" line="2"><span class="token assign-left variable"><span class="token environment constant">IFS</span></span><span class="token operator">=</span><span class="token string">$'<span class="token entity" title="\n">\n</span><span class="token entity" title="\t">\t</span>'</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token builtin class-name">set</span> <span class="token parameter variable">-euo</span> pipefail
|
||||
</span><span class="code-line"><span class="token assign-left variable"><span class="token environment constant">IFS</span></span><span class="token operator">=</span><span class="token string">$'<span class="token entity" title="\n">\n</span><span class="token entity" title="\t">\t</span>'</span>
|
||||
</span></code></pre>
|
||||
<p>参见:<a href="http://redsymbol.net/articles/unofficial-bash-strict-mode/">非官方 bash 严格模式</a></p>
|
||||
</div></div></div><div class="wrap"><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 line-number" line="1"><span class="token assign-left variable">args</span><span class="token operator">=</span><span class="token punctuation">(</span><span class="token string">"<span class="token variable">$@</span>"</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token assign-left variable">args</span><span class="token operator">+=</span><span class="token punctuation">(</span>foo<span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token assign-left variable">args</span><span class="token operator">+=</span><span class="token punctuation">(</span>bar<span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token builtin class-name">echo</span> <span class="token string">"<span class="token variable">${args<span class="token punctuation">[</span>@<span class="token punctuation">]</span>}</span>"</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token assign-left variable">args</span><span class="token operator">=</span><span class="token punctuation">(</span><span class="token string">"<span class="token variable">$@</span>"</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token assign-left variable">args</span><span class="token operator">+=</span><span class="token punctuation">(</span>foo<span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token assign-left variable">args</span><span class="token operator">+=</span><span class="token punctuation">(</span>bar<span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token builtin class-name">echo</span> <span class="token string">"<span class="token variable">${args<span class="token punctuation">[</span>@<span class="token punctuation">]</span>}</span>"</span>
|
||||
</span></code></pre>
|
||||
<p>将参数放入数组中,然后追加</p>
|
||||
</div></div></div></div></div><div class="wrap"><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">
|
||||
|
104
docs/chmod.html
104
docs/chmod.html
@ -38,16 +38,16 @@
|
||||
<p>这份快速参考备忘单提供了文件权限的简要概述,以及 chmod 命令的操作</p>
|
||||
</div></header><div class="h1wrap-body"><div class="wrap"><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"><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-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">chmod</span> <span class="token punctuation">[</span>options<span class="token punctuation">]</span> <span class="token operator"><</span>permissions<span class="token operator">></span> <span class="token operator"><</span>file<span class="token operator">></span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">chmod</span> <span class="token punctuation">[</span>options<span class="token punctuation">]</span> <span class="token operator"><</span>permissions<span class="token operator">></span> <span class="token operator"><</span>file<span class="token operator">></span>
|
||||
</span></code></pre>
|
||||
</div></div><div class="h3wrap-body"><div class="wrap"><div class="wrap-header h4wrap"><h4 id="示例"><a aria-hidden="true" tabindex="-1" href="#示例"><span class="icon icon-link"></span></a>示例</h4><div class="wrap-body">
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">chmod</span> <span class="token number">755</span> foo.txt
|
||||
</span><span class="code-line line-number" line="2">$ <span class="token function">chmod</span> +x quickref.py
|
||||
</span><span class="code-line line-number" line="3">$ <span class="token function">chmod</span> u-x quickref.py
|
||||
</span><span class="code-line line-number" line="4">$ <span class="token function">chmod</span> <span class="token assign-left variable">u</span><span class="token operator">=</span>rwx,g<span class="token operator">=</span>rx,o<span class="token operator">=</span> quickref.sh
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">chmod</span> <span class="token number">755</span> foo.txt
|
||||
</span><span class="code-line">$ <span class="token function">chmod</span> +x quickref.py
|
||||
</span><span class="code-line">$ <span class="token function">chmod</span> u-x quickref.py
|
||||
</span><span class="code-line">$ <span class="token function">chmod</span> <span class="token assign-left variable">u</span><span class="token operator">=</span>rwx,g<span class="token operator">=</span>rx,o<span class="token operator">=</span> quickref.sh
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h4wrap"><h4 id="递归更改文件和目录"><a aria-hidden="true" tabindex="-1" href="#递归更改文件和目录"><span class="icon icon-link"></span></a>递归更改文件和目录</h4><div class="wrap-body">
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">chmod</span> <span class="token parameter variable">-R</span> <span class="token number">755</span> my_directory
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">chmod</span> <span class="token parameter variable">-R</span> <span class="token number">755</span> my_directory
|
||||
</span></code></pre>
|
||||
<p><code>chmod</code> 命令代表“更改模式”</p>
|
||||
</div></div></div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="chmod-生成器"><a aria-hidden="true" tabindex="-1" href="#chmod-生成器"><span class="icon icon-link"></span></a>Chmod 生成器</h3><div class="wrap-body">
|
||||
@ -111,18 +111,18 @@
|
||||
|
||||
<table><thead><tr><th align="left">命令</th><th align="left">s</th><th align="left">含义</th></tr></thead><tbody><tr><td align="left"><code>400</code></td><td align="left">r--------</td><td align="left">仅所有者可读</td></tr><tr><td align="left"><code>500</code></td><td align="left">r-x------</td><td align="left">避免改变</td></tr><tr><td align="left"><code>600</code></td><td align="left">rw-------</td><td align="left">可由用户更改</td></tr><tr><td align="left"><code>644</code></td><td align="left">rw-r--r--</td><td align="left">由用户读取和更改</td></tr><tr><td align="left"><code>660</code></td><td align="left">rw-rw----</td><td align="left">可由用户和组更改</td></tr><tr><td align="left"><code>700</code></td><td align="left">rwx------</td><td align="left">只有用户具有完全访问权限</td></tr><tr><td align="left"><code>755</code></td><td align="left">rwxr-xr-x</td><td align="left">只能由用户更改</td></tr><tr><td align="left"><code>775</code></td><td align="left">rwxrwxr-x</td><td align="left">群组共享模式</td></tr><tr><td align="left"><code>777</code></td><td align="left">rwxrwxrwx</td><td align="left">每个人都可以做任何事</td></tr></tbody></table>
|
||||
</div></div></div><div class="wrap"><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-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">ls</span> <span class="token parameter variable">-l</span>
|
||||
</span><span class="code-line line-number" line="2">-rw-r--r-- <span class="token number">1</span> root root <span class="token number">3</span> Jun <span class="token number">29</span> <span class="token number">15</span>:35 a.log
|
||||
</span><span class="code-line line-number" line="3">drwxr-xr-x <span class="token number">2</span> root root <span class="token number">2</span> Jun <span class="token number">30</span> <span class="token number">18</span>:06 <span class="token function">dir</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">ls</span> <span class="token parameter variable">-l</span>
|
||||
</span><span class="code-line">-rw-r--r-- <span class="token number">1</span> root root <span class="token number">3</span> Jun <span class="token number">29</span> <span class="token number">15</span>:35 a.log
|
||||
</span><span class="code-line">drwxr-xr-x <span class="token number">2</span> root root <span class="token number">2</span> Jun <span class="token number">30</span> <span class="token number">18</span>:06 <span class="token function">dir</span>
|
||||
</span></code></pre>
|
||||
</div></div><div class="h3wrap-body"><div class="wrap"><div class="wrap-header h4wrap"><h4 id="dir-的权限分析"><a aria-hidden="true" tabindex="-1" href="#dir-的权限分析"><span class="icon icon-link"></span></a><code>dir</code> 的权限分析</h4><div class="wrap-body">
|
||||
<pre class="language-text"><code class="language-text code-highlight"><span class="code-line line-number" line="1">d rwx r-x r-x
|
||||
</span><span class="code-line line-number" line="2">┬ ─┬─ ─┬─ ─┬─
|
||||
</span><span class="code-line line-number" line="3">┆ ┆ ┆ ┆
|
||||
</span><span class="code-line line-number" line="4">┆ ┆ ┆ ╰─ 4. Other|5 (4+0+1)
|
||||
</span><span class="code-line line-number" line="5">┆ ┆ ╰────── 3. Group|5 (4+0+1)
|
||||
</span><span class="code-line line-number" line="6">┆ ╰─────────── 2. User |7 (4+2+1)
|
||||
</span><span class="code-line line-number" line="7">╰─────────────── 1. File Type | directory
|
||||
<pre class="language-text"><code class="language-text code-highlight"><span class="code-line">d rwx r-x r-x
|
||||
</span><span class="code-line">┬ ─┬─ ─┬─ ─┬─
|
||||
</span><span class="code-line">┆ ┆ ┆ ┆
|
||||
</span><span class="code-line">┆ ┆ ┆ ╰─ 4. Other|5 (4+0+1)
|
||||
</span><span class="code-line">┆ ┆ ╰────── 3. Group|5 (4+0+1)
|
||||
</span><span class="code-line">┆ ╰─────────── 2. User |7 (4+2+1)
|
||||
</span><span class="code-line">╰─────────────── 1. File Type | directory
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap col-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=col-span-2-->
|
||||
@ -297,79 +297,79 @@
|
||||
|
||||
<table><thead><tr><th>Symbol</th><th>Description</th></tr></thead><tbody><tr><td><code>+</code></td><td>添加</td></tr><tr><td><code>-</code></td><td>删除</td></tr><tr><td><code>=</code></td><td>设置</td></tr></tbody></table>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="chmod-600"><a aria-hidden="true" tabindex="-1" href="#chmod-600"><span class="icon icon-link"></span></a>chmod 600</h3><div class="wrap-body">
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">chmod</span> <span class="token number">600</span> example.txt
|
||||
</span><span class="code-line line-number" line="2">$ <span class="token function">chmod</span> <span class="token assign-left variable">u</span><span class="token operator">=</span>rw,g<span class="token operator">=</span>,o<span class="token operator">=</span> example.txt
|
||||
</span><span class="code-line line-number" line="3">$ <span class="token function">chmod</span> a+rwx,u-x,g-rwx,o-rwx example.txt
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">chmod</span> <span class="token number">600</span> example.txt
|
||||
</span><span class="code-line">$ <span class="token function">chmod</span> <span class="token assign-left variable">u</span><span class="token operator">=</span>rw,g<span class="token operator">=</span>,o<span class="token operator">=</span> example.txt
|
||||
</span><span class="code-line">$ <span class="token function">chmod</span> a+rwx,u-x,g-rwx,o-rwx example.txt
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="chmod-664"><a aria-hidden="true" tabindex="-1" href="#chmod-664"><span class="icon icon-link"></span></a>chmod 664</h3><div class="wrap-body">
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">chmod</span> <span class="token number">664</span> example.txt
|
||||
</span><span class="code-line line-number" line="2">$ <span class="token function">chmod</span> <span class="token assign-left variable">u</span><span class="token operator">=</span>rw,g<span class="token operator">=</span>rw,o<span class="token operator">=</span>r example.txt
|
||||
</span><span class="code-line line-number" line="3">$ <span class="token function">chmod</span> a+rwx,u-x,g-x,o-wx example.txt
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">chmod</span> <span class="token number">664</span> example.txt
|
||||
</span><span class="code-line">$ <span class="token function">chmod</span> <span class="token assign-left variable">u</span><span class="token operator">=</span>rw,g<span class="token operator">=</span>rw,o<span class="token operator">=</span>r example.txt
|
||||
</span><span class="code-line">$ <span class="token function">chmod</span> a+rwx,u-x,g-x,o-wx example.txt
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="chmod-777"><a aria-hidden="true" tabindex="-1" href="#chmod-777"><span class="icon icon-link"></span></a>chmod 777</h3><div class="wrap-body">
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">chmod</span> <span class="token number">777</span> example.txt
|
||||
</span><span class="code-line line-number" line="2">$ <span class="token function">chmod</span> <span class="token assign-left variable">u</span><span class="token operator">=</span>rwx,g<span class="token operator">=</span>rwx,o<span class="token operator">=</span>rwx example.txt
|
||||
</span><span class="code-line line-number" line="3">$ <span class="token function">chmod</span> <span class="token assign-left variable">a</span><span class="token operator">=</span>rwx example.txt
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">chmod</span> <span class="token number">777</span> example.txt
|
||||
</span><span class="code-line">$ <span class="token function">chmod</span> <span class="token assign-left variable">u</span><span class="token operator">=</span>rwx,g<span class="token operator">=</span>rwx,o<span class="token operator">=</span>rwx example.txt
|
||||
</span><span class="code-line">$ <span class="token function">chmod</span> <span class="token assign-left variable">a</span><span class="token operator">=</span>rwx example.txt
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap row-span-3"><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-3-->
|
||||
<p>拒绝所有人的执行权限。</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">chmod</span> a-x chmodExampleFile.txt
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">chmod</span> a-x chmodExampleFile.txt
|
||||
</span></code></pre>
|
||||
<p>向所有人授予读取权限。</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">chmod</span> a+r chmodExampleFile.txt
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">chmod</span> a+r chmodExampleFile.txt
|
||||
</span></code></pre>
|
||||
<p>使文件可由组和其他人读写。</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">chmod</span> go+rw chmodExampleFile.txt
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">chmod</span> go+rw chmodExampleFile.txt
|
||||
</span></code></pre>
|
||||
<p>使用户/所有者可执行 shell。</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">chmod</span> u+x chmodExampleScript.sh
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">chmod</span> u+x chmodExampleScript.sh
|
||||
</span></code></pre>
|
||||
<p>允许每个人读取、写入和执行文件并打开设置的 group-ID。</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">chmod</span> <span class="token operator">=</span>rwx,g+s chmodExampleScript.sh
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">chmod</span> <span class="token operator">=</span>rwx,g+s chmodExampleScript.sh
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap row-span-3"><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-3-->
|
||||
<p>要删除赋予文件的读写权限,请使用以下语法:</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">chmod</span> o-rw example.txt
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">chmod</span> o-rw example.txt
|
||||
</span></code></pre>
|
||||
<p>对于我们的文件 example.txt,我们可以通过运行以下命令使用 chmod for group 删除读写权限:</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">chmod</span> g-rx example.txt
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">chmod</span> g-rx example.txt
|
||||
</span></code></pre>
|
||||
<p>要从组中删除 chmod 读写权限,同时向 public/others 添加读写权限,我们可以使用以下命令:</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">chmod</span> g-rx, o+rx example.txt
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">chmod</span> g-rx, o+rx example.txt
|
||||
</span></code></pre>
|
||||
<p>但是,如果你想删除组和其他人的所有权限,你可以使用 go= 来代替:</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">chmod</span> <span class="token assign-left variable">go</span><span class="token operator">=</span> example.txt
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">chmod</span> <span class="token assign-left variable">go</span><span class="token operator">=</span> example.txt
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">chmod</span> +x ~/example.py
|
||||
</span><span class="code-line line-number" line="2">$ <span class="token function">chmod</span> u+x ~/example.py
|
||||
</span><span class="code-line line-number" line="3">$ <span class="token function">chmod</span> a+x ~/example.py
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">chmod</span> +x ~/example.py
|
||||
</span><span class="code-line">$ <span class="token function">chmod</span> u+x ~/example.py
|
||||
</span><span class="code-line">$ <span class="token function">chmod</span> a+x ~/example.py
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="chmod-754"><a aria-hidden="true" tabindex="-1" href="#chmod-754"><span class="icon icon-link"></span></a>chmod 754</h3><div class="wrap-body">
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">chmod</span> <span class="token number">754</span> foo.sh
|
||||
</span><span class="code-line line-number" line="2">$ <span class="token function">chmod</span> <span class="token assign-left variable">u</span><span class="token operator">=</span>rwx,g<span class="token operator">=</span>rx,o<span class="token operator">=</span>r foo.sh
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">chmod</span> <span class="token number">754</span> foo.sh
|
||||
</span><span class="code-line">$ <span class="token function">chmod</span> <span class="token assign-left variable">u</span><span class="token operator">=</span>rwx,g<span class="token operator">=</span>rx,o<span class="token operator">=</span>r foo.sh
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap"><div class="wrap-header h2wrap"><h2 id="chmod-实践"><a aria-hidden="true" tabindex="-1" href="#chmod-实践"><span class="icon icon-link"></span></a>Chmod 实践</h2><div class="wrap-body">
|
||||
</div></div><div class="h2wrap-body"><div class="wrap"><div class="wrap-header h3wrap"><h3 id="ssh-权限"><a aria-hidden="true" tabindex="-1" href="#ssh-权限"><span class="icon icon-link"></span></a>SSH 权限</h3><div class="wrap-body">
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">chmod</span> <span class="token number">700</span> ~/.ssh
|
||||
</span><span class="code-line line-number" line="2">$ <span class="token function">chmod</span> <span class="token number">600</span> ~/.ssh/authorized_keys
|
||||
</span><span class="code-line line-number" line="3">$ <span class="token function">chmod</span> <span class="token number">600</span> ~/.ssh/id_rsa
|
||||
</span><span class="code-line line-number" line="4">$ <span class="token function">chmod</span> <span class="token number">600</span> ~/.ssh/id_rsa.pub
|
||||
</span><span class="code-line line-number" line="5">$ <span class="token function">chmod</span> <span class="token number">400</span> /path/to/access_key.pem
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">chmod</span> <span class="token number">700</span> ~/.ssh
|
||||
</span><span class="code-line">$ <span class="token function">chmod</span> <span class="token number">600</span> ~/.ssh/authorized_keys
|
||||
</span><span class="code-line">$ <span class="token function">chmod</span> <span class="token number">600</span> ~/.ssh/id_rsa
|
||||
</span><span class="code-line">$ <span class="token function">chmod</span> <span class="token number">600</span> ~/.ssh/id_rsa.pub
|
||||
</span><span class="code-line">$ <span class="token function">chmod</span> <span class="token number">400</span> /path/to/access_key.pem
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">chmod</span> <span class="token parameter variable">-R</span> <span class="token number">644</span> /var/www/html/
|
||||
</span><span class="code-line line-number" line="2">$ <span class="token function">chmod</span> <span class="token number">644</span> .htaccess
|
||||
</span><span class="code-line line-number" line="3">$ <span class="token function">chmod</span> <span class="token number">644</span> robots.txt
|
||||
</span><span class="code-line line-number" line="4">$ <span class="token function">chmod</span> <span class="token number">755</span> /var/www/uploads/
|
||||
</span><span class="code-line line-number" line="5">$ <span class="token function">find</span> /var/www/html <span class="token parameter variable">-type</span> d <span class="token parameter variable">-exec</span> <span class="token function">chmod</span> <span class="token number">755</span> <span class="token punctuation">{</span><span class="token punctuation">}</span> <span class="token punctuation">\</span><span class="token punctuation">;</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">chmod</span> <span class="token parameter variable">-R</span> <span class="token number">644</span> /var/www/html/
|
||||
</span><span class="code-line">$ <span class="token function">chmod</span> <span class="token number">644</span> .htaccess
|
||||
</span><span class="code-line">$ <span class="token function">chmod</span> <span class="token number">644</span> robots.txt
|
||||
</span><span class="code-line">$ <span class="token function">chmod</span> <span class="token number">755</span> /var/www/uploads/
|
||||
</span><span class="code-line">$ <span class="token function">find</span> /var/www/html <span class="token parameter variable">-type</span> d <span class="token parameter variable">-exec</span> <span class="token function">chmod</span> <span class="token number">755</span> <span class="token punctuation">{</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"><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-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">chmod</span> <span class="token parameter variable">-R</span> <span class="token number">644</span> /your_path
|
||||
</span><span class="code-line line-number" line="2">$ <span class="token function">find</span> /path <span class="token parameter variable">-type</span> d <span class="token parameter variable">-exec</span> <span class="token function">chmod</span> <span class="token number">755</span> <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 line-number" line="3">$ <span class="token function">find</span> /path <span class="token parameter variable">-type</span> f <span class="token parameter variable">-exec</span> <span class="token function">chmod</span> <span class="token number">644</span> <span class="token punctuation">{</span><span class="token punctuation">}</span> <span class="token punctuation">\</span><span class="token punctuation">;</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">chmod</span> <span class="token parameter variable">-R</span> <span class="token number">644</span> /your_path
|
||||
</span><span class="code-line">$ <span class="token function">find</span> /path <span class="token parameter variable">-type</span> d <span class="token parameter variable">-exec</span> <span class="token function">chmod</span> <span class="token number">755</span> <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 function">find</span> /path <span class="token parameter variable">-type</span> f <span class="token parameter variable">-exec</span> <span class="token function">chmod</span> <span class="token number">644</span> <span class="token punctuation">{</span><span class="token punctuation">}</span> <span class="token punctuation">\</span><span class="token punctuation">;</span>
|
||||
</span></code></pre>
|
||||
<p>请参阅:<a href="https://tldp.org/LDP/abs/html/commandsub.html">命令替换</a></p>
|
||||
</div></div></div></div></div><div class="wrap"><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">
|
||||
|
@ -39,17 +39,17 @@
|
||||
</div></header><div class="h1wrap-body"><div class="wrap"><div class="wrap-header h2wrap"><h2 id="crontab-格式"><a aria-hidden="true" tabindex="-1" href="#crontab-格式"><span class="icon icon-link"></span></a>Crontab 格式</h2><div class="wrap-body">
|
||||
<!--rehype:body-class=cols-2-->
|
||||
</div></div><div class="h2wrap-body cols-2"><div class="wrap"><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><code class="code-highlight"><span class="code-line line-number" line="1">Min Hour Day Mon Weekday
|
||||
</span><span class="code-line line-number" line="2">分钟 小时 天 月 周
|
||||
<pre><code class="code-highlight"><span class="code-line">Min Hour Day Mon Weekday
|
||||
</span><span class="code-line">分钟 小时 天 月 周
|
||||
</span></code></pre>
|
||||
<hr>
|
||||
<pre><code class="code-highlight"><span class="code-line line-number" line="1">* * * * * 要执行的命令
|
||||
</span><span class="code-line line-number" line="2">┬ ┬ ┬ ┬ ┬
|
||||
</span><span class="code-line line-number" line="3">│ │ │ │ └─ 星期几 (0=周日 .. 6=星期六)
|
||||
</span><span class="code-line line-number" line="4">│ │ │ └────── 月 (1..12)
|
||||
</span><span class="code-line line-number" line="5">│ │ └─────────── 月份中的某天 (1..31)
|
||||
</span><span class="code-line line-number" line="6">│ └──────────────── 小时 (0..23)
|
||||
</span><span class="code-line line-number" line="7">└───────────────────── 分钟 (0..59)
|
||||
<pre><code class="code-highlight"><span class="code-line">* * * * * 要执行的命令
|
||||
</span><span class="code-line">┬ ┬ ┬ ┬ ┬
|
||||
</span><span class="code-line">│ │ │ │ └─ 星期几 (0=周日 .. 6=星期六)
|
||||
</span><span class="code-line">│ │ │ └────── 月 (1..12)
|
||||
</span><span class="code-line">│ │ └─────────── 月份中的某天 (1..31)
|
||||
</span><span class="code-line">│ └──────────────── 小时 (0..23)
|
||||
</span><span class="code-line">└───────────────────── 分钟 (0..59)
|
||||
</span></code></pre>
|
||||
<hr>
|
||||
|
||||
|
110
docs/docker.html
110
docs/docker.html
@ -40,7 +40,7 @@
|
||||
<!--rehype:body-class=cols-2-->
|
||||
</div></div><div class="h2wrap-body cols-2"><div class="wrap"><div class="wrap-header h3wrap"><h3 id="入门-1"><a aria-hidden="true" tabindex="-1" href="#入门-1"><span class="icon icon-link"></span></a>入门</h3><div class="wrap-body">
|
||||
<p>在后台创建和运行容器</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">docker</span> run <span class="token parameter variable">-d</span> <span class="token parameter variable">-p</span> <span class="token number">80</span>:80 docker/getting-started
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">docker</span> run <span class="token parameter variable">-d</span> <span class="token parameter variable">-p</span> <span class="token number">80</span>:80 docker/getting-started
|
||||
</span></code></pre>
|
||||
<hr>
|
||||
<ul>
|
||||
@ -49,7 +49,7 @@
|
||||
<li><code>docker/getting-started</code> - 要使用的镜像</li>
|
||||
</ul>
|
||||
<p>在前台创建并运行容器</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">docker</span> run <span class="token parameter variable">-it</span> <span class="token parameter variable">-p</span> <span class="token number">8001</span>:8080 <span class="token parameter variable">--name</span> my-nginx nginx
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">docker</span> run <span class="token parameter variable">-it</span> <span class="token parameter variable">-p</span> <span class="token number">8001</span>:8080 <span class="token parameter variable">--name</span> my-nginx nginx
|
||||
</span></code></pre>
|
||||
<hr>
|
||||
<ul>
|
||||
@ -211,30 +211,30 @@
|
||||
|
||||
<table><thead><tr><th>Example</th><th>Description</th></tr></thead><tbody><tr><td><code>docker ps</code></td><td>列出正在运行的容器</td></tr><tr><td><code>docker ps -a</code></td><td>列出所有容器</td></tr><tr><td><code>docker logs nginx-server</code></td><td>容器日志</td></tr><tr><td><code>docker inspect nginx-server</code></td><td>检查容器</td></tr><tr><td><code>docker events nginx-server</code></td><td>容器事件</td></tr><tr><td><code>docker port nginx-server</code></td><td>公共端口</td></tr><tr><td><code>docker top nginx-server</code></td><td>运行进程</td></tr><tr><td><code>docker stats nginx-server</code></td><td>容器资源使用</td></tr><tr><td><code>docker diff nginx-server</code></td><td>列出对容器所做的更改</td></tr></tbody></table>
|
||||
</div></div></div><div class="wrap"><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-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1"><span class="token function">docker</span> create <span class="token punctuation">[</span>options<span class="token punctuation">]</span> IMAGE
|
||||
</span><span class="code-line line-number" line="2"> -a, <span class="token parameter variable">--attach</span> <span class="token comment"># 附加标准输出/错误</span>
|
||||
</span><span class="code-line line-number" line="3"> -i, <span class="token parameter variable">--interactive</span> <span class="token comment"># 附加标准输入(交互式)</span>
|
||||
</span><span class="code-line line-number" line="4"> -t, <span class="token parameter variable">--tty</span> <span class="token comment"># 伪终端 pseudo-tty</span>
|
||||
</span><span class="code-line line-number" line="5"> <span class="token parameter variable">--name</span> NAME <span class="token comment"># 命名你的镜像</span>
|
||||
</span><span class="code-line line-number" line="6"> -p, <span class="token parameter variable">--publish</span> <span class="token number">5000</span>:5000 <span class="token comment"># 端口映射(主机:容器)</span>
|
||||
</span><span class="code-line line-number" line="7"> <span class="token parameter variable">--expose</span> <span class="token number">5432</span> <span class="token comment"># 向容器公开端口 </span>
|
||||
</span><span class="code-line line-number" line="8"> -P, --publish-all <span class="token comment"># 发布所有端口</span>
|
||||
</span><span class="code-line line-number" line="9"> <span class="token parameter variable">--link</span> container:alias <span class="token comment"># 链接 linking</span>
|
||||
</span><span class="code-line line-number" line="10"> -v, <span class="token parameter variable">--volume</span> <span class="token variable"><span class="token variable">`</span><span class="token builtin class-name">pwd</span><span class="token variable">`</span></span>:/app <span class="token comment"># mount(需要绝对路径)</span>
|
||||
</span><span class="code-line line-number" line="11"> -e, <span class="token parameter variable">--env</span> <span class="token assign-left variable">NAME</span><span class="token operator">=</span>hello <span class="token comment"># 环境变量 env vars</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line"><span class="token function">docker</span> create <span class="token punctuation">[</span>options<span class="token punctuation">]</span> IMAGE
|
||||
</span><span class="code-line"> -a, <span class="token parameter variable">--attach</span> <span class="token comment"># 附加标准输出/错误</span>
|
||||
</span><span class="code-line"> -i, <span class="token parameter variable">--interactive</span> <span class="token comment"># 附加标准输入(交互式)</span>
|
||||
</span><span class="code-line"> -t, <span class="token parameter variable">--tty</span> <span class="token comment"># 伪终端 pseudo-tty</span>
|
||||
</span><span class="code-line"> <span class="token parameter variable">--name</span> NAME <span class="token comment"># 命名你的镜像</span>
|
||||
</span><span class="code-line"> -p, <span class="token parameter variable">--publish</span> <span class="token number">5000</span>:5000 <span class="token comment"># 端口映射(主机:容器)</span>
|
||||
</span><span class="code-line"> <span class="token parameter variable">--expose</span> <span class="token number">5432</span> <span class="token comment"># 向容器公开端口 </span>
|
||||
</span><span class="code-line"> -P, --publish-all <span class="token comment"># 发布所有端口</span>
|
||||
</span><span class="code-line"> <span class="token parameter variable">--link</span> container:alias <span class="token comment"># 链接 linking</span>
|
||||
</span><span class="code-line"> -v, <span class="token parameter variable">--volume</span> <span class="token variable"><span class="token variable">`</span><span class="token builtin class-name">pwd</span><span class="token variable">`</span></span>:/app <span class="token comment"># mount(需要绝对路径)</span>
|
||||
</span><span class="code-line"> -e, <span class="token parameter variable">--env</span> <span class="token assign-left variable">NAME</span><span class="token operator">=</span>hello <span class="token comment"># 环境变量 env vars</span>
|
||||
</span></code></pre>
|
||||
</div></div><div class="h3wrap-body"><div class="wrap"><div class="wrap-header h4wrap"><h4 id="实例"><a aria-hidden="true" tabindex="-1" href="#实例"><span class="icon icon-link"></span></a>实例</h4><div class="wrap-body">
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">docker</span> create <span class="token parameter variable">--name</span> my_redis <span class="token parameter variable">--expose</span> <span class="token number">6379</span> redis:3.0.2
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">docker</span> create <span class="token parameter variable">--name</span> my_redis <span class="token parameter variable">--expose</span> <span class="token number">6379</span> redis:3.0.2
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap"><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">
|
||||
<p>重命名容器</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1"><span class="token function">docker</span> <span class="token function">rename</span> my-nginx nginx-server
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line"><span class="token function">docker</span> <span class="token function">rename</span> my-nginx nginx-server
|
||||
</span></code></pre>
|
||||
<p>移除容器</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1"><span class="token function">docker</span> <span class="token function">rm</span> nginx-server
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line"><span class="token function">docker</span> <span class="token function">rm</span> nginx-server
|
||||
</span></code></pre>
|
||||
<p>更新容器</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1"><span class="token function">docker</span> update --cpu-shares <span class="token number">512</span> <span class="token parameter variable">-m</span> 300M nginx-server
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line"><span class="token function">docker</span> update --cpu-shares <span class="token number">512</span> <span class="token parameter variable">-m</span> 300M nginx-server
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap"><div class="wrap-header h2wrap"><h2 id="docker-镜像"><a aria-hidden="true" tabindex="-1" href="#docker-镜像"><span class="icon icon-link"></span></a>Docker 镜像</h2><div class="wrap-body">
|
||||
<!--rehype:body-class=cols-2-->
|
||||
@ -286,49 +286,49 @@
|
||||
|
||||
<table><thead><tr><th><code>Example</code></th><th>Description</th></tr></thead><tbody><tr><td><code>docker images</code></td><td>列出镜像</td></tr><tr><td><code>docker rmi nginx</code></td><td>删除镜像</td></tr><tr><td><code>docker load < ubuntu.tar.gz</code></td><td>加载一个 tarred 存储库</td></tr><tr><td><code>docker load --input ubuntu.tar</code></td><td>加载一个 tarred 存储库</td></tr><tr><td><code>docker save busybox > ubuntu.tar</code></td><td>将镜像保存到 tar 存档</td></tr><tr><td><code>docker history</code></td><td>显示镜像的历史</td></tr><tr><td><code>docker commit nginx</code></td><td>将容器另存为镜像。</td></tr><tr><td><code>docker tag nginx eon01/nginx</code></td><td>标记镜像</td></tr><tr><td><code>docker push eon01/nginx</code></td><td>推送镜像</td></tr></tbody></table>
|
||||
</div></div></div><div class="wrap"><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-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">docker</span> build <span class="token builtin class-name">.</span>
|
||||
</span><span class="code-line line-number" line="2">$ <span class="token function">docker</span> build github.com/creack/docker-firefox
|
||||
</span><span class="code-line line-number" line="3">$ <span class="token function">docker</span> build - <span class="token operator"><</span> Dockerfile
|
||||
</span><span class="code-line line-number" line="4">$ <span class="token function">docker</span> build - <span class="token operator"><</span> context.tar.gz
|
||||
</span><span class="code-line line-number" line="5">$ <span class="token function">docker</span> build <span class="token parameter variable">-t</span> eon/nginx-server <span class="token builtin class-name">.</span>
|
||||
</span><span class="code-line line-number" line="6">$ <span class="token function">docker</span> build <span class="token parameter variable">-f</span> myOtherDockerfile <span class="token builtin class-name">.</span>
|
||||
</span><span class="code-line line-number" line="7">$ <span class="token function">curl</span> example.com/remote/Dockerfile <span class="token operator">|</span> <span class="token function">docker</span> build <span class="token parameter variable">-f</span> - <span class="token builtin class-name">.</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">docker</span> build <span class="token builtin class-name">.</span>
|
||||
</span><span class="code-line">$ <span class="token function">docker</span> build github.com/creack/docker-firefox
|
||||
</span><span class="code-line">$ <span class="token function">docker</span> build - <span class="token operator"><</span> Dockerfile
|
||||
</span><span class="code-line">$ <span class="token function">docker</span> build - <span class="token operator"><</span> context.tar.gz
|
||||
</span><span class="code-line">$ <span class="token function">docker</span> build <span class="token parameter variable">-t</span> eon/nginx-server <span class="token builtin class-name">.</span>
|
||||
</span><span class="code-line">$ <span class="token function">docker</span> build <span class="token parameter variable">-f</span> myOtherDockerfile <span class="token builtin class-name">.</span>
|
||||
</span><span class="code-line">$ <span class="token function">curl</span> example.com/remote/Dockerfile <span class="token operator">|</span> <span class="token function">docker</span> build <span class="token parameter variable">-f</span> - <span class="token builtin class-name">.</span>
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap"><div class="wrap-header h2wrap"><h2 id="docker-网络"><a aria-hidden="true" tabindex="-1" href="#docker-网络"><span class="icon icon-link"></span></a>Docker 网络</h2><div class="wrap-body">
|
||||
<!--rehype:body-class=cols-2-->
|
||||
</div></div><div class="h2wrap-body cols-2"><div class="wrap"><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">
|
||||
<p>删除网络</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1"><span class="token function">docker</span> network <span class="token function">rm</span> MyOverlayNetwork
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line"><span class="token function">docker</span> network <span class="token function">rm</span> MyOverlayNetwork
|
||||
</span></code></pre>
|
||||
<p>列出网络</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1"><span class="token function">docker</span> network <span class="token function">ls</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line"><span class="token function">docker</span> network <span class="token function">ls</span>
|
||||
</span></code></pre>
|
||||
<p>获取有关网络的信息</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1"><span class="token function">docker</span> network inspect MyOverlayNetwork
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line"><span class="token function">docker</span> network inspect MyOverlayNetwork
|
||||
</span></code></pre>
|
||||
<p>将正在运行的容器连接到网络</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1"><span class="token function">docker</span> network connect MyOverlayNetwork nginx
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line"><span class="token function">docker</span> network connect MyOverlayNetwork nginx
|
||||
</span></code></pre>
|
||||
<p>启动时将容器连接到网络</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1"><span class="token function">docker</span> run <span class="token parameter variable">-it</span> <span class="token parameter variable">-d</span> <span class="token parameter variable">--network</span><span class="token operator">=</span>MyOverlayNetwork nginx
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line"><span class="token function">docker</span> run <span class="token parameter variable">-it</span> <span class="token parameter variable">-d</span> <span class="token parameter variable">--network</span><span class="token operator">=</span>MyOverlayNetwork nginx
|
||||
</span></code></pre>
|
||||
<p>断开容器与网络的连接</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1"><span class="token function">docker</span> network disconnect MyOverlayNetwork nginx
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line"><span class="token function">docker</span> network disconnect MyOverlayNetwork nginx
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1"><span class="token function">docker</span> network create <span class="token parameter variable">-d</span> overlay MyOverlayNetwork
|
||||
</span><span class="code-line line-number" line="2"><span class="token function">docker</span> network create <span class="token parameter variable">-d</span> bridge MyBridgeNetwork
|
||||
</span><span class="code-line line-number" line="3"><span class="token function">docker</span> network create <span class="token parameter variable">-d</span> overlay <span class="token punctuation">\</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token parameter variable">--subnet</span><span class="token operator">=</span><span class="token number">192.168</span>.0.0/16 <span class="token punctuation">\</span>
|
||||
</span><span class="code-line line-number" line="5"> <span class="token parameter variable">--subnet</span><span class="token operator">=</span><span class="token number">192.170</span>.0.0/16 <span class="token punctuation">\</span>
|
||||
</span><span class="code-line line-number" line="6"> <span class="token parameter variable">--gateway</span><span class="token operator">=</span><span class="token number">192.168</span>.0.100 <span class="token punctuation">\</span>
|
||||
</span><span class="code-line line-number" line="7"> <span class="token parameter variable">--gateway</span><span class="token operator">=</span><span class="token number">192.170</span>.0.100 <span class="token punctuation">\</span>
|
||||
</span><span class="code-line line-number" line="8"> --ip-range<span class="token operator">=</span><span class="token number">192.168</span>.1.0/24 <span class="token punctuation">\</span>
|
||||
</span><span class="code-line line-number" line="9"> --aux-address<span class="token operator">=</span><span class="token string">"my-router=192.168.1.5"</span> <span class="token punctuation">\</span>
|
||||
</span><span class="code-line line-number" line="10"> --aux-address<span class="token operator">=</span><span class="token string">"my-switch=192.168.1.6"</span> <span class="token punctuation">\</span>
|
||||
</span><span class="code-line line-number" line="11"> --aux-address<span class="token operator">=</span><span class="token string">"my-printer=192.170.1.5"</span> <span class="token punctuation">\</span>
|
||||
</span><span class="code-line line-number" line="12"> --aux-address<span class="token operator">=</span><span class="token string">"my-nas=192.170.1.6"</span> <span class="token punctuation">\</span>
|
||||
</span><span class="code-line line-number" line="13"> MyOverlayNetwork
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line"><span class="token function">docker</span> network create <span class="token parameter variable">-d</span> overlay MyOverlayNetwork
|
||||
</span><span class="code-line"><span class="token function">docker</span> network create <span class="token parameter variable">-d</span> bridge MyBridgeNetwork
|
||||
</span><span class="code-line"><span class="token function">docker</span> network create <span class="token parameter variable">-d</span> overlay <span class="token punctuation">\</span>
|
||||
</span><span class="code-line"> <span class="token parameter variable">--subnet</span><span class="token operator">=</span><span class="token number">192.168</span>.0.0/16 <span class="token punctuation">\</span>
|
||||
</span><span class="code-line"> <span class="token parameter variable">--subnet</span><span class="token operator">=</span><span class="token number">192.170</span>.0.0/16 <span class="token punctuation">\</span>
|
||||
</span><span class="code-line"> <span class="token parameter variable">--gateway</span><span class="token operator">=</span><span class="token number">192.168</span>.0.100 <span class="token punctuation">\</span>
|
||||
</span><span class="code-line"> <span class="token parameter variable">--gateway</span><span class="token operator">=</span><span class="token number">192.170</span>.0.100 <span class="token punctuation">\</span>
|
||||
</span><span class="code-line"> --ip-range<span class="token operator">=</span><span class="token number">192.168</span>.1.0/24 <span class="token punctuation">\</span>
|
||||
</span><span class="code-line"> --aux-address<span class="token operator">=</span><span class="token string">"my-router=192.168.1.5"</span> <span class="token punctuation">\</span>
|
||||
</span><span class="code-line"> --aux-address<span class="token operator">=</span><span class="token string">"my-switch=192.168.1.6"</span> <span class="token punctuation">\</span>
|
||||
</span><span class="code-line"> --aux-address<span class="token operator">=</span><span class="token string">"my-printer=192.170.1.5"</span> <span class="token punctuation">\</span>
|
||||
</span><span class="code-line"> --aux-address<span class="token operator">=</span><span class="token string">"my-nas=192.170.1.6"</span> <span class="token punctuation">\</span>
|
||||
</span><span class="code-line"> MyOverlayNetwork
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap"><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">
|
||||
<!--rehype:body-class=cols-2-->
|
||||
@ -362,24 +362,24 @@
|
||||
</div></div></div><div class="wrap row-span-3"><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-3-->
|
||||
<p>登录到注册表</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">docker</span> login
|
||||
</span><span class="code-line line-number" line="2">$ <span class="token function">docker</span> login localhost:8080
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">docker</span> login
|
||||
</span><span class="code-line">$ <span class="token function">docker</span> login localhost:8080
|
||||
</span></code></pre>
|
||||
<p>从注册表注销</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">docker</span> <span class="token builtin class-name">logout</span>
|
||||
</span><span class="code-line line-number" line="2">$ <span class="token function">docker</span> <span class="token builtin class-name">logout</span> localhost:8080
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">docker</span> <span class="token builtin class-name">logout</span>
|
||||
</span><span class="code-line">$ <span class="token function">docker</span> <span class="token builtin class-name">logout</span> localhost:8080
|
||||
</span></code></pre>
|
||||
<p>搜索镜像</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">docker</span> search nginx
|
||||
</span><span class="code-line line-number" line="2">$ <span class="token function">docker</span> search nginx <span class="token parameter variable">--stars</span><span class="token operator">=</span><span class="token number">3</span> --no-trunc busybox
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">docker</span> search nginx
|
||||
</span><span class="code-line">$ <span class="token function">docker</span> search nginx <span class="token parameter variable">--stars</span><span class="token operator">=</span><span class="token number">3</span> --no-trunc busybox
|
||||
</span></code></pre>
|
||||
<p>拉取镜像</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">docker</span> pull nginx
|
||||
</span><span class="code-line line-number" line="2">$ <span class="token function">docker</span> pull eon01/nginx localhost:5000/myadmin/nginx
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">docker</span> pull nginx
|
||||
</span><span class="code-line">$ <span class="token function">docker</span> pull eon01/nginx localhost:5000/myadmin/nginx
|
||||
</span></code></pre>
|
||||
<p>推送镜像</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">docker</span> push eon01/nginx
|
||||
</span><span class="code-line line-number" line="2">$ <span class="token function">docker</span> push eon01/nginx localhost:5000/myadmin/nginx
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">docker</span> push eon01/nginx
|
||||
</span><span class="code-line">$ <span class="token function">docker</span> push eon01/nginx localhost:5000/myadmin/nginx
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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">
|
||||
|
||||
@ -406,10 +406,10 @@
|
||||
<table><thead><tr><th>实例</th><th>说明</th></tr></thead><tbody><tr><td><code>docker stop -f $(docker ps -a -q)</code></td><td>停止所有容器</td></tr><tr><td><code>docker rm -f $(docker ps -a -q)</code></td><td>删除所有容器</td></tr><tr><td><code>docker rmi -f $(docker images -q)</code></td><td>删除所有图像</td></tr></tbody></table>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="卷-volume"><a aria-hidden="true" tabindex="-1" href="#卷-volume"><span class="icon icon-link"></span></a>卷 volume</h3><div class="wrap-body">
|
||||
<p>检查卷</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">docker</span> volume <span class="token function">ls</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">docker</span> volume <span class="token function">ls</span>
|
||||
</span></code></pre>
|
||||
<p>清理未使用的卷</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">docker</span> volume prune
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">docker</span> volume prune
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap"><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">
|
||||
<ul>
|
||||
|
@ -42,58 +42,58 @@
|
||||
<ul>
|
||||
<li><a href="./docker.html">Docker 备忘清单</a> <em>(github.io)</em></li>
|
||||
</ul>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1"><span class="token function">docker</span> build <span class="token parameter variable">-f</span> /path/to/a/Dockerfile <span class="token builtin class-name">.</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line"><span class="token function">docker</span> build <span class="token parameter variable">-f</span> /path/to/a/Dockerfile <span class="token builtin class-name">.</span>
|
||||
</span></code></pre>
|
||||
<p>使用 <code>-f</code> 指向文件系统中任何位置的 <code>Dockerfile</code>。</p>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="继承-1"><a aria-hidden="true" tabindex="-1" href="#继承-1"><span class="icon icon-link"></span></a>继承</h3><div class="wrap-body">
|
||||
<pre class="wrap-text "><code class="language-dockerfile code-highlight"><span class="code-line line-number" line="1"><span class="token instruction"><span class="token keyword">FROM</span> [--platform=<platform>] <image> [AS <name>]</span>
|
||||
<pre class="wrap-text "><code class="language-dockerfile code-highlight"><span class="code-line"><span class="token instruction"><span class="token keyword">FROM</span> [--platform=<platform>] <image> [AS <name>]</span>
|
||||
</span></code></pre>
|
||||
<!--rehype:className=wrap-text -->
|
||||
<p>示例</p>
|
||||
<pre class="language-dockerfile"><code class="language-dockerfile code-highlight"><span class="code-line line-number" line="1"><span class="token instruction"><span class="token keyword">FROM</span> ruby:2.2.2</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token instruction"><span class="token keyword">FROM</span> golang:1.19-alpine3.16 <span class="token keyword">AS</span> build-env</span>
|
||||
<pre class="language-dockerfile"><code class="language-dockerfile code-highlight"><span class="code-line"><span class="token instruction"><span class="token keyword">FROM</span> ruby:2.2.2</span>
|
||||
</span><span class="code-line"><span class="token instruction"><span class="token keyword">FROM</span> golang:1.19-alpine3.16 <span class="token keyword">AS</span> build-env</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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-dockerfile"><code class="language-dockerfile code-highlight"><span class="code-line line-number" line="1"><span class="token instruction"><span class="token keyword">ENV</span> <key>=<value> ...</span>
|
||||
<pre class="language-dockerfile"><code class="language-dockerfile code-highlight"><span class="code-line"><span class="token instruction"><span class="token keyword">ENV</span> <key>=<value> ...</span>
|
||||
</span></code></pre>
|
||||
<pre class="language-dockerfile"><code class="language-dockerfile code-highlight"><span class="code-line line-number" line="1"><span class="token instruction"><span class="token keyword">ENV</span> APP_HOME /myapp</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token instruction"><span class="token keyword">RUN</span> mkdir <span class="token variable">$APP_HOME</span></span>
|
||||
<pre class="language-dockerfile"><code class="language-dockerfile code-highlight"><span class="code-line"><span class="token instruction"><span class="token keyword">ENV</span> APP_HOME /myapp</span>
|
||||
</span><span class="code-line"><span class="token instruction"><span class="token keyword">RUN</span> mkdir <span class="token variable">$APP_HOME</span></span>
|
||||
</span></code></pre>
|
||||
<pre class="language-dockerfile"><code class="language-dockerfile code-highlight"><span class="code-line line-number" line="1"><span class="token instruction"><span class="token keyword">ENV</span> MY_NAME=<span class="token string">"John Doe"</span> MY_DOG=Rex\ The\ Dog <span class="token operator">\</span>
|
||||
</span></span><span class="code-line line-number" line="2"><span class="token instruction"> MY_CAT=fluffy</span>
|
||||
<pre class="language-dockerfile"><code class="language-dockerfile code-highlight"><span class="code-line"><span class="token instruction"><span class="token keyword">ENV</span> MY_NAME=<span class="token string">"John Doe"</span> MY_DOG=Rex\ The\ Dog <span class="token operator">\</span>
|
||||
</span></span><span class="code-line"><span class="token instruction"> MY_CAT=fluffy</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap 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-dockerfile"><code class="language-dockerfile code-highlight"><span class="code-line line-number" line="1"><span class="token instruction"><span class="token keyword">RUN</span> bundle install</span>
|
||||
<pre class="language-dockerfile"><code class="language-dockerfile code-highlight"><span class="code-line"><span class="token instruction"><span class="token keyword">RUN</span> bundle install</span>
|
||||
</span></code></pre>
|
||||
<p><code>WORKDIR</code> 指令为任何 <code>RUN</code>、<code>CMD</code>、<code>ENTRYPOINT</code>、<code>COPY</code> 和 <code>ADD</code> 指令设置工作目录。</p>
|
||||
<pre class="language-dockerfile"><code class="language-dockerfile code-highlight"><span class="code-line line-number" line="1"><span class="token instruction"><span class="token keyword">WORKDIR</span> /myapp</span>
|
||||
<pre class="language-dockerfile"><code class="language-dockerfile code-highlight"><span class="code-line"><span class="token instruction"><span class="token keyword">WORKDIR</span> /myapp</span>
|
||||
</span></code></pre>
|
||||
<p><code>VOLUME</code> 指令创建一个具有指定名称的挂载点,并将其标记为保存来自本机主机或其他容器的外部挂载卷。</p>
|
||||
<pre class="language-dockerfile"><code class="language-dockerfile code-highlight"><span class="code-line line-number" line="1"><span class="token instruction"><span class="token keyword">VOLUME</span> [<span class="token string">"/data"</span>]</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token comment"># 安装点规范</span>
|
||||
<pre class="language-dockerfile"><code class="language-dockerfile code-highlight"><span class="code-line"><span class="token instruction"><span class="token keyword">VOLUME</span> [<span class="token string">"/data"</span>]</span>
|
||||
</span><span class="code-line"><span class="token comment"># 安装点规范</span>
|
||||
</span></code></pre>
|
||||
<pre class="wrap-text "><code class="language-dockerfile code-highlight"><span class="code-line line-number" line="1"><span class="token instruction"><span class="token keyword">ADD</span> file.xyz /file.xyz</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token comment"># 复制</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token instruction"><span class="token keyword">COPY</span> <span class="token options"><span class="token property">--chown</span><span class="token punctuation">=</span><span class="token string">user:group</span></span> host_file.xyz /path/container_file.xyz</span>
|
||||
<pre class="wrap-text "><code class="language-dockerfile code-highlight"><span class="code-line"><span class="token instruction"><span class="token keyword">ADD</span> file.xyz /file.xyz</span>
|
||||
</span><span class="code-line"><span class="token comment"># 复制</span>
|
||||
</span><span class="code-line"><span class="token instruction"><span class="token keyword">COPY</span> <span class="token options"><span class="token property">--chown</span><span class="token punctuation">=</span><span class="token string">user:group</span></span> host_file.xyz /path/container_file.xyz</span>
|
||||
</span></code></pre>
|
||||
<!--rehype:className=wrap-text -->
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="onbuild"><a aria-hidden="true" tabindex="-1" href="#onbuild"><span class="icon icon-link"></span></a>Onbuild</h3><div class="wrap-body">
|
||||
<pre class="wrap-text "><code class="language-dockerfile code-highlight"><span class="code-line line-number" line="1"><span class="token instruction"><span class="token keyword">ONBUILD</span> <span class="token keyword">RUN</span> bundle install</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token comment"># 与另一个文件一起使用时</span>
|
||||
</span><span class="code-line line-number" line="3">
|
||||
</span><span class="code-line line-number" line="4"><span class="token instruction"><span class="token keyword">ONBUILD</span> <span class="token keyword">ADD</span> . /app/src</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token instruction"><span class="token keyword">ONBUILD</span> <span class="token keyword">RUN</span> /usr/local/bin/python-build --dir /app/src</span>
|
||||
<pre class="wrap-text "><code class="language-dockerfile code-highlight"><span class="code-line"><span class="token instruction"><span class="token keyword">ONBUILD</span> <span class="token keyword">RUN</span> bundle install</span>
|
||||
</span><span class="code-line"><span class="token comment"># 与另一个文件一起使用时</span>
|
||||
</span><span class="code-line">
|
||||
</span><span class="code-line"><span class="token instruction"><span class="token keyword">ONBUILD</span> <span class="token keyword">ADD</span> . /app/src</span>
|
||||
</span><span class="code-line"><span class="token instruction"><span class="token keyword">ONBUILD</span> <span class="token keyword">RUN</span> /usr/local/bin/python-build --dir /app/src</span>
|
||||
</span></code></pre>
|
||||
<!--rehype:className=wrap-text -->
|
||||
<p>指令将触发指令添加到镜像中,以便稍后执行,此时镜像用作另一个构建的基础。</p>
|
||||
</div></div></div><div class="wrap"><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="wrap-text "><code class="language-dockerfile code-highlight"><span class="code-line line-number" line="1"><span class="token instruction"><span class="token keyword">ENV</span> my_var</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token instruction"><span class="token keyword">SHELL</span> [<span class="token string">"/bin/bash"</span>, <span class="token string">"-euo"</span>, <span class="token string">"pipefail"</span>, <span class="token string">"-c"</span>]</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token comment"># 使用严格模式:</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token instruction"><span class="token keyword">RUN</span> false # ails 像使用 && 一样构建</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token instruction"><span class="token keyword">RUN</span> echo <span class="token string">"$myvar"</span> # 由于拼写错误会抛出错误</span>
|
||||
</span><span class="code-line line-number" line="6"><span class="token instruction"><span class="token keyword">RUN</span> true | false # 将脱离管道</span>
|
||||
<pre class="wrap-text "><code class="language-dockerfile code-highlight"><span class="code-line"><span class="token instruction"><span class="token keyword">ENV</span> my_var</span>
|
||||
</span><span class="code-line"><span class="token instruction"><span class="token keyword">SHELL</span> [<span class="token string">"/bin/bash"</span>, <span class="token string">"-euo"</span>, <span class="token string">"pipefail"</span>, <span class="token string">"-c"</span>]</span>
|
||||
</span><span class="code-line"><span class="token comment"># 使用严格模式:</span>
|
||||
</span><span class="code-line"><span class="token instruction"><span class="token keyword">RUN</span> false # ails 像使用 && 一样构建</span>
|
||||
</span><span class="code-line"><span class="token instruction"><span class="token keyword">RUN</span> echo <span class="token string">"$myvar"</span> # 由于拼写错误会抛出错误</span>
|
||||
</span><span class="code-line"><span class="token instruction"><span class="token keyword">RUN</span> true | false # 将脱离管道</span>
|
||||
</span></code></pre>
|
||||
<!--rehype:className=wrap-text -->
|
||||
<p>使用 <code>shell</code> 将为 shell 命令打开严格模式。</p>
|
||||
@ -121,46 +121,46 @@
|
||||
|
||||
|
||||
<table><thead><tr><th align="left">:-</th><th>-</th></tr></thead><tbody><tr><td align="left"><code>CMD ["executable","param1","param2"]</code></td><td>(exec 形式,这是首选形式)</td></tr><tr><td align="left"><code>CMD ["param1","param2"]</code></td><td>(作为 ENTRYPOINT 的默认参数)</td></tr><tr><td align="left"><code>CMD command param1 param2</code></td><td>(shell形式)</td></tr></tbody></table>
|
||||
<pre class="language-dockerfile"><code class="language-dockerfile code-highlight"><span class="code-line line-number" line="1"><span class="token instruction"><span class="token keyword">EXPOSE</span> 5900</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token instruction"><span class="token keyword">CMD</span> [<span class="token string">"bundle"</span>, <span class="token string">"exec"</span>, <span class="token string">"rails"</span>, <span class="token string">"server"</span>]</span>
|
||||
<pre class="language-dockerfile"><code class="language-dockerfile code-highlight"><span class="code-line"><span class="token instruction"><span class="token keyword">EXPOSE</span> 5900</span>
|
||||
</span><span class="code-line"><span class="token instruction"><span class="token keyword">CMD</span> [<span class="token string">"bundle"</span>, <span class="token string">"exec"</span>, <span class="token string">"rails"</span>, <span class="token string">"server"</span>]</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="入口点-entrypoint"><a aria-hidden="true" tabindex="-1" href="#入口点-entrypoint"><span class="icon icon-link"></span></a>入口点 ENTRYPOINT</h3><div class="wrap-body">
|
||||
<pre class="wrap-text "><code class="language-dockerfile code-highlight"><span class="code-line line-number" line="1"><span class="token instruction"><span class="token keyword">ENTRYPOINT</span> [<span class="token string">"executable"</span>, <span class="token string">"param1"</span>, <span class="token string">"param2"</span>]</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token instruction"><span class="token keyword">ENTRYPOINT</span> command param1 param2</span>
|
||||
<pre class="wrap-text "><code class="language-dockerfile code-highlight"><span class="code-line"><span class="token instruction"><span class="token keyword">ENTRYPOINT</span> [<span class="token string">"executable"</span>, <span class="token string">"param1"</span>, <span class="token string">"param2"</span>]</span>
|
||||
</span><span class="code-line"><span class="token instruction"><span class="token keyword">ENTRYPOINT</span> command param1 param2</span>
|
||||
</span></code></pre>
|
||||
<!--rehype:className=wrap-text -->
|
||||
<p>配置将作为可执行文件运行的容器。</p>
|
||||
<pre class="language-dockerfile"><code class="language-dockerfile code-highlight"><span class="code-line line-number" line="1"><span class="token instruction"><span class="token keyword">ENTRYPOINT</span> exec top -b</span>
|
||||
<pre class="language-dockerfile"><code class="language-dockerfile code-highlight"><span class="code-line"><span class="token instruction"><span class="token keyword">ENTRYPOINT</span> exec top -b</span>
|
||||
</span></code></pre>
|
||||
<p>这将使用 shell 处理来替换 shell 变量,并将忽略任何 <code>CMD</code> 或 <code>docker run</code> 命令行参数。</p>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="元数据-label"><a aria-hidden="true" tabindex="-1" href="#元数据-label"><span class="icon icon-link"></span></a>元数据 LABEL</h3><div class="wrap-body">
|
||||
<pre class="language-dockerfile"><code class="language-dockerfile code-highlight"><span class="code-line line-number" line="1"><span class="token instruction"><span class="token keyword">LABEL</span> version=<span class="token string">"1.0"</span></span>
|
||||
<pre class="language-dockerfile"><code class="language-dockerfile code-highlight"><span class="code-line"><span class="token instruction"><span class="token keyword">LABEL</span> version=<span class="token string">"1.0"</span></span>
|
||||
</span></code></pre>
|
||||
<pre class="wrap-text "><code class="language-dockerfile code-highlight"><span class="code-line line-number" line="1"><span class="token instruction"><span class="token keyword">LABEL</span> <span class="token string">"com.example.vendor"</span>=<span class="token string">"ACME Incorporated"</span></span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token instruction"><span class="token keyword">LABEL</span> com.example.label-with-value=<span class="token string">"foo"</span></span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token instruction"><span class="token keyword">LABEL</span> version=<span class="token string">"1.0"</span></span>
|
||||
<pre class="wrap-text "><code class="language-dockerfile code-highlight"><span class="code-line"><span class="token instruction"><span class="token keyword">LABEL</span> <span class="token string">"com.example.vendor"</span>=<span class="token string">"ACME Incorporated"</span></span>
|
||||
</span><span class="code-line"><span class="token instruction"><span class="token keyword">LABEL</span> com.example.label-with-value=<span class="token string">"foo"</span></span>
|
||||
</span><span class="code-line"><span class="token instruction"><span class="token keyword">LABEL</span> version=<span class="token string">"1.0"</span></span>
|
||||
</span></code></pre>
|
||||
<!--rehype:className=wrap-text -->
|
||||
<pre class="language-dockerfile"><code class="language-dockerfile code-highlight"><span class="code-line line-number" line="1"><span class="token instruction"><span class="token keyword">LABEL</span> description=<span class="token string">"本文说明\
|
||||
</span></span></span><span class="code-line line-number" line="2"><span class="token instruction"><span class="token string">标签值可以跨越多行。"</span></span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token instruction"><span class="token keyword">LABEL</span> multi.label1=<span class="token string">"value1"</span> <span class="token operator">\</span>
|
||||
</span></span><span class="code-line line-number" line="4"><span class="token instruction"> multi.label2=<span class="token string">"value2"</span> <span class="token operator">\</span>
|
||||
</span></span><span class="code-line line-number" line="5"><span class="token instruction"> other=<span class="token string">"value3"</span></span>
|
||||
<pre class="language-dockerfile"><code class="language-dockerfile code-highlight"><span class="code-line"><span class="token instruction"><span class="token keyword">LABEL</span> description=<span class="token string">"本文说明\
|
||||
</span></span></span><span class="code-line"><span class="token instruction"><span class="token string">标签值可以跨越多行。"</span></span>
|
||||
</span><span class="code-line"><span class="token instruction"><span class="token keyword">LABEL</span> multi.label1=<span class="token string">"value1"</span> <span class="token operator">\</span>
|
||||
</span></span><span class="code-line"><span class="token instruction"> multi.label2=<span class="token string">"value2"</span> <span class="token operator">\</span>
|
||||
</span></span><span class="code-line"><span class="token instruction"> other=<span class="token string">"value3"</span></span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="arg"><a aria-hidden="true" tabindex="-1" href="#arg"><span class="icon icon-link"></span></a>ARG</h3><div class="wrap-body">
|
||||
<pre class="language-dockerfile"><code class="language-dockerfile code-highlight"><span class="code-line line-number" line="1"><span class="token instruction"><span class="token keyword">ARG</span> <name>[=<default value>]</span>
|
||||
<pre class="language-dockerfile"><code class="language-dockerfile code-highlight"><span class="code-line"><span class="token instruction"><span class="token keyword">ARG</span> <name>[=<default value>]</span>
|
||||
</span></code></pre>
|
||||
<p>指令定义了一个变量,在构建时通过 <code>docker build</code> 命令使用 --build-arg <code><varname>=<value></code> 标志将其传递给构建器。</p>
|
||||
<pre class="language-dockerfile"><code class="language-dockerfile code-highlight"><span class="code-line line-number" line="1"><span class="token instruction"><span class="token keyword">FROM</span> busybox</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token comment"># user1 默认值为 someuser</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token instruction"><span class="token keyword">ARG</span> user1=someuser</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token instruction"><span class="token keyword">ARG</span> buildno=1</span>
|
||||
<pre class="language-dockerfile"><code class="language-dockerfile code-highlight"><span class="code-line"><span class="token instruction"><span class="token keyword">FROM</span> busybox</span>
|
||||
</span><span class="code-line"><span class="token comment"># user1 默认值为 someuser</span>
|
||||
</span><span class="code-line"><span class="token instruction"><span class="token keyword">ARG</span> user1=someuser</span>
|
||||
</span><span class="code-line"><span class="token instruction"><span class="token keyword">ARG</span> buildno=1</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="dockerignore-文件"><a aria-hidden="true" tabindex="-1" href="#dockerignore-文件"><span class="icon icon-link"></span></a>.dockerignore 文件</h3><div class="wrap-body">
|
||||
<pre class="language-ignore"><code class="language-ignore code-highlight"><span class="code-line line-number" line="1"><span class="token comment"># 注释说明</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token entry string"><span class="token operator">*</span><span class="token punctuation">/</span>temp<span class="token operator">*</span></span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token entry string"><span class="token operator">*</span><span class="token punctuation">/</span><span class="token operator">*</span><span class="token punctuation">/</span>temp<span class="token operator">*</span></span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token entry string">temp<span class="token operator">?</span></span>
|
||||
<pre class="language-ignore"><code class="language-ignore code-highlight"><span class="code-line"><span class="token comment"># 注释说明</span>
|
||||
</span><span class="code-line"><span class="token entry string"><span class="token operator">*</span><span class="token punctuation">/</span>temp<span class="token operator">*</span></span>
|
||||
</span><span class="code-line"><span class="token entry string"><span class="token operator">*</span><span class="token punctuation">/</span><span class="token operator">*</span><span class="token punctuation">/</span>temp<span class="token operator">*</span></span>
|
||||
</span><span class="code-line"><span class="token entry string">temp<span class="token operator">?</span></span>
|
||||
</span></code></pre>
|
||||
<hr>
|
||||
|
||||
@ -244,16 +244,16 @@
|
||||
<table><thead><tr><th align="left">命令</th><th>说明</th></tr></thead><tbody><tr><td align="left"><code>FROM image</code></td><td>构建的基础镜像</td></tr><tr><td align="left"><del><code>MAINTAINER email</code></del></td><td>(已弃用)维护者的名字</td></tr><tr><td align="left"><code>COPY [--chown=<user>:<group>] <src>... <dest></code></td><td>将上下文中的路径复制到位置 <code>dest</code> 的容器中</td></tr><tr><td align="left"><code>ADD [--chown=<user>:<group>] <src>... <dest></code></td><td>与 <code>COPY</code> 相同,但解压缩存档并接受 http url。</td></tr><tr><td align="left"><code>RUN <command></code></td><td>在容器内运行任意命令。</td></tr><tr><td align="left"><code>USER <user>[:<group>]</code></td><td>设置默认用户名。</td></tr><tr><td align="left"><code>WORKDIR /path/to/workdir</code></td><td>设置默认工作目录。</td></tr><tr><td align="left"><code>CMD command param1 param2</code></td><td>设置默认命令</td></tr><tr><td align="left"><code>ENV <key>=<value> ...</code></td><td>设置环境变量</td></tr><tr><td align="left"><code>EXPOSE <port> [<port>/<protocol>...]</code></td><td>运行时侦听指定的网络端口</td></tr></tbody></table>
|
||||
</div></div></div><div class="wrap col-span-2"><div class="wrap-header h3wrap"><h3 id="服务静态网站的最小-docker-镜像"><a aria-hidden="true" tabindex="-1" href="#服务静态网站的最小-docker-镜像"><span class="icon icon-link"></span></a>服务静态网站的最小 Docker 镜像</h3><div class="wrap-body">
|
||||
<!--rehype:wrap-class=col-span-2-->
|
||||
<pre class="language-dockerfile"><code class="language-dockerfile code-highlight"><span class="code-line line-number" line="1"><span class="token instruction"><span class="token keyword">FROM</span> lipanski/docker-static-website:latest</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token comment"># 使用 .dockerignore 文件来控制图像中的内容!</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token comment"># 复制当前目录内容,到容器中</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token instruction"><span class="token keyword">COPY</span> ./ .</span>
|
||||
<pre class="language-dockerfile"><code class="language-dockerfile code-highlight"><span class="code-line"><span class="token instruction"><span class="token keyword">FROM</span> lipanski/docker-static-website:latest</span>
|
||||
</span><span class="code-line"><span class="token comment"># 使用 .dockerignore 文件来控制图像中的内容!</span>
|
||||
</span><span class="code-line"><span class="token comment"># 复制当前目录内容,到容器中</span>
|
||||
</span><span class="code-line"><span class="token instruction"><span class="token keyword">COPY</span> ./ .</span>
|
||||
</span></code></pre>
|
||||
<p>这会产生一个 <strong><code>154KB +</code></strong> 的单层镜像。 如果您需要以不同的方式配置 <code>httpd</code>,您可以覆盖 CMD 行:</p>
|
||||
<pre class="language-dockerfile"><code class="language-dockerfile code-highlight"><span class="code-line line-number" line="1"><span class="token instruction"><span class="token keyword">FROM</span> lipanski/docker-static-website:latest</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token instruction"><span class="token keyword">COPY</span> . .</span>
|
||||
</span><span class="code-line line-number" line="3">
|
||||
</span><span class="code-line line-number" line="4"><span class="token instruction"><span class="token keyword">CMD</span> [<span class="token string">"/busybox"</span>, <span class="token string">"httpd"</span>, <span class="token string">"-f"</span>, <span class="token string">"-v"</span>, <span class="token string">"-p"</span>, <span class="token string">"3000"</span>, <span class="token string">"-c"</span>, <span class="token string">"httpd.conf"</span>]</span>
|
||||
<pre class="language-dockerfile"><code class="language-dockerfile code-highlight"><span class="code-line"><span class="token instruction"><span class="token keyword">FROM</span> lipanski/docker-static-website:latest</span>
|
||||
</span><span class="code-line"><span class="token instruction"><span class="token keyword">COPY</span> . .</span>
|
||||
</span><span class="code-line">
|
||||
</span><span class="code-line"><span class="token instruction"><span class="token keyword">CMD</span> [<span class="token string">"/busybox"</span>, <span class="token string">"httpd"</span>, <span class="token string">"-f"</span>, <span class="token string">"-v"</span>, <span class="token string">"-p"</span>, <span class="token string">"3000"</span>, <span class="token string">"-c"</span>, <span class="token string">"httpd.conf"</span>]</span>
|
||||
</span></code></pre>
|
||||
<p>缩小镜像过程<a href="https://lipanski.com/posts/smallest-docker-image-static-website">查看原文</a>,镜像 <a href="https://github.com/lipanski/docker-static-website">Dockerfile 源码</a>。</p>
|
||||
</div></div></div></div></div><div class="wrap"><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">
|
||||
|
104
docs/find.html
104
docs/find.html
@ -38,12 +38,12 @@
|
||||
<p>这是 Linux find 命令备忘单的快速参考列表,包含常用选项和示例。</p>
|
||||
</div></header><div class="h1wrap-body"><div class="wrap"><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"><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-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">find</span> <span class="token punctuation">[</span>path<span class="token punctuation">..</span>.<span class="token punctuation">]</span> <span class="token punctuation">[</span>options<span class="token punctuation">]</span> <span class="token punctuation">[</span>expression<span class="token punctuation">]</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">find</span> <span class="token punctuation">[</span>path<span class="token punctuation">..</span>.<span class="token punctuation">]</span> <span class="token punctuation">[</span>options<span class="token punctuation">]</span> <span class="token punctuation">[</span>expression<span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
<p>通配符</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">find</span> <span class="token builtin class-name">.</span> <span class="token parameter variable">-name</span> <span class="token string">"*.txt"</span>
|
||||
</span><span class="code-line line-number" line="2">$ <span class="token function">find</span> <span class="token builtin class-name">.</span> <span class="token parameter variable">-name</span> <span class="token string">"2020*.csv"</span>
|
||||
</span><span class="code-line line-number" line="3">$ <span class="token function">find</span> <span class="token builtin class-name">.</span> <span class="token parameter variable">-name</span> <span class="token string">"json_*"</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">find</span> <span class="token builtin class-name">.</span> <span class="token parameter variable">-name</span> <span class="token string">"*.txt"</span>
|
||||
</span><span class="code-line">$ <span class="token function">find</span> <span class="token builtin class-name">.</span> <span class="token parameter variable">-name</span> <span class="token string">"2020*.csv"</span>
|
||||
</span><span class="code-line">$ <span class="token function">find</span> <span class="token builtin class-name">.</span> <span class="token parameter variable">-name</span> <span class="token string">"json_*"</span>
|
||||
</span></code></pre>
|
||||
<hr>
|
||||
<ul>
|
||||
@ -183,84 +183,84 @@
|
||||
<table><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><code>-size b</code></td><td>512 字节块(默认)</td></tr><tr><td><code>-size c</code></td><td>字节</td></tr><tr><td><code>-size k</code></td><td>千字节</td></tr><tr><td><code>-size M</code></td><td>兆字节</td></tr><tr><td><code>-size G</code></td><td>千兆字节</td></tr><tr><td><code>-size T</code></td><td>太字节_(仅限 BSD)_</td></tr><tr><td><code>-size P</code></td><td>PB <em>(仅 BSD)</em></td></tr></tbody></table>
|
||||
</div></div></div><div class="wrap"><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">
|
||||
<p>查找所有大于 10MB 的文件</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">find</span> / <span class="token parameter variable">-size</span> +10M
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">find</span> / <span class="token parameter variable">-size</span> +10M
|
||||
</span></code></pre>
|
||||
<p>查找所有小于 10MB 的文件</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">find</span> / <span class="token parameter variable">-size</span> <span class="token parameter variable">-10M</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">find</span> / <span class="token parameter variable">-size</span> <span class="token parameter variable">-10M</span>
|
||||
</span></code></pre>
|
||||
<p>查找所有正好为 10M 的文件</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">find</span> / <span class="token parameter variable">-size</span> 10M
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">find</span> / <span class="token parameter variable">-size</span> 10M
|
||||
</span></code></pre>
|
||||
<p>查找 100MB 和 1GB 之间的大小</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">find</span> / <span class="token parameter variable">-size</span> +100M <span class="token parameter variable">-size</span> <span class="token parameter variable">-1G</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">find</span> / <span class="token parameter variable">-size</span> +100M <span class="token parameter variable">-size</span> <span class="token parameter variable">-1G</span>
|
||||
</span></code></pre>
|
||||
<p>像往常一样,<code>+</code> 和 <code>-</code> 前缀表示大于和小于。</p>
|
||||
</div></div></div><div class="wrap"><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">
|
||||
<p>在当前目录中使用名称查找文件</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">find</span> <span class="token builtin class-name">.</span> <span class="token parameter variable">-name</span> tecmint.txt
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">find</span> <span class="token builtin class-name">.</span> <span class="token parameter variable">-name</span> tecmint.txt
|
||||
</span></code></pre>
|
||||
<p>查找主目录下的文件</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">find</span> /home <span class="token parameter variable">-name</span> tecmint.txt
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">find</span> /home <span class="token parameter variable">-name</span> tecmint.txt
|
||||
</span></code></pre>
|
||||
<p>使用名称查找文件并忽略大小写</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">find</span> /home <span class="token parameter variable">-iname</span> tecmint.txt
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">find</span> /home <span class="token parameter variable">-iname</span> tecmint.txt
|
||||
</span></code></pre>
|
||||
<p>使用名称查找目录</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">find</span> / <span class="token parameter variable">-type</span> d <span class="token parameter variable">-name</span> tecmint
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">find</span> / <span class="token parameter variable">-type</span> d <span class="token parameter variable">-name</span> tecmint
|
||||
</span></code></pre>
|
||||
<p>使用名称查找php文件</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">find</span> <span class="token builtin class-name">.</span> <span class="token parameter variable">-type</span> f <span class="token parameter variable">-name</span> tecmint.php
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">find</span> <span class="token builtin class-name">.</span> <span class="token parameter variable">-type</span> f <span class="token parameter variable">-name</span> tecmint.php
|
||||
</span></code></pre>
|
||||
<p>查找目录下的所有php文件</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">find</span> <span class="token builtin class-name">.</span> <span class="token parameter variable">-type</span> f <span class="token parameter variable">-name</span> <span class="token string">"*.php"</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">find</span> <span class="token builtin class-name">.</span> <span class="token parameter variable">-type</span> f <span class="token parameter variable">-name</span> <span class="token string">"*.php"</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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">
|
||||
<p>查找权限为 777 的文件。</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">find</span> <span class="token builtin class-name">.</span> <span class="token parameter variable">-type</span> f <span class="token parameter variable">-perm</span> 0777 <span class="token parameter variable">-print</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">find</span> <span class="token builtin class-name">.</span> <span class="token parameter variable">-type</span> f <span class="token parameter variable">-perm</span> 0777 <span class="token parameter variable">-print</span>
|
||||
</span></code></pre>
|
||||
<p>查找未经许可的文件 777.</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">find</span> / <span class="token parameter variable">-type</span> f <span class="token operator">!</span> <span class="token parameter variable">-perm</span> <span class="token number">777</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">find</span> / <span class="token parameter variable">-type</span> f <span class="token operator">!</span> <span class="token parameter variable">-perm</span> <span class="token number">777</span>
|
||||
</span></code></pre>
|
||||
<p>查找 SUID 集文件。</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">find</span> / <span class="token parameter variable">-perm</span> /u<span class="token operator">=</span>s
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">find</span> / <span class="token parameter variable">-perm</span> /u<span class="token operator">=</span>s
|
||||
</span></code></pre>
|
||||
<p>查找 SGID 集文件。</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">find</span> / <span class="token parameter variable">-perm</span> /g<span class="token operator">=</span>s
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">find</span> / <span class="token parameter variable">-perm</span> /g<span class="token operator">=</span>s
|
||||
</span></code></pre>
|
||||
<p>查找只读文件。</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">find</span> / <span class="token parameter variable">-perm</span> /u<span class="token operator">=</span>r
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">find</span> / <span class="token parameter variable">-perm</span> /u<span class="token operator">=</span>r
|
||||
</span></code></pre>
|
||||
<p>查找可执行文件。</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">find</span> / <span class="token parameter variable">-perm</span> /a<span class="token operator">=</span>x
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">find</span> / <span class="token parameter variable">-perm</span> /a<span class="token operator">=</span>x
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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">
|
||||
<p>根据用户查找单个文件</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">find</span> / <span class="token parameter variable">-user</span> root <span class="token parameter variable">-name</span> tecmint.txt
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">find</span> / <span class="token parameter variable">-user</span> root <span class="token parameter variable">-name</span> tecmint.txt
|
||||
</span></code></pre>
|
||||
<p>根据用户查找所有文件</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">find</span> /home <span class="token parameter variable">-user</span> tecmint
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">find</span> /home <span class="token parameter variable">-user</span> tecmint
|
||||
</span></code></pre>
|
||||
<p>根据组查找所有文件</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">find</span> /home <span class="token parameter variable">-group</span> developer
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">find</span> /home <span class="token parameter variable">-group</span> developer
|
||||
</span></code></pre>
|
||||
<p>查找用户的特定文件</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">find</span> /home <span class="token parameter variable">-user</span> tecmint <span class="token parameter variable">-iname</span> <span class="token string">"*.txt"</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">find</span> /home <span class="token parameter variable">-user</span> tecmint <span class="token parameter variable">-iname</span> <span class="token string">"*.txt"</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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="wrap-text "><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">find</span> <span class="token builtin class-name">.</span> <span class="token parameter variable">-type</span> f <span class="token punctuation">\</span><span class="token punctuation">(</span> <span class="token parameter variable">-name</span> <span class="token string">"*.sh"</span> <span class="token parameter variable">-o</span> <span class="token parameter variable">-name</span> <span class="token string">"*.txt"</span> <span class="token punctuation">\</span><span class="token punctuation">)</span>
|
||||
<pre class="wrap-text "><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">find</span> <span class="token builtin class-name">.</span> <span class="token parameter variable">-type</span> f <span class="token punctuation">\</span><span class="token punctuation">(</span> <span class="token parameter variable">-name</span> <span class="token string">"*.sh"</span> <span class="token parameter variable">-o</span> <span class="token parameter variable">-name</span> <span class="token string">"*.txt"</span> <span class="token punctuation">\</span><span class="token punctuation">)</span>
|
||||
</span></code></pre>
|
||||
<!--rehype:className=wrap-text -->
|
||||
<p>查找带有 <code>.sh</code> 和 <code>.txt</code> 扩展名的文件</p>
|
||||
</div></div></div><div class="wrap"><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="wrap-text "><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">find</span> /opt /usr /var <span class="token parameter variable">-name</span> foo.scala <span class="token parameter variable">-type</span> f
|
||||
<pre class="wrap-text "><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">find</span> /opt /usr /var <span class="token parameter variable">-name</span> foo.scala <span class="token parameter variable">-type</span> f
|
||||
</span></code></pre>
|
||||
<!--rehype:className=wrap-text -->
|
||||
<p>查找具有多个目录的文件</p>
|
||||
</div></div></div><div class="wrap"><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-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">find</span> <span class="token builtin class-name">.</span> <span class="token parameter variable">-type</span> d <span class="token parameter variable">-empty</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">find</span> <span class="token builtin class-name">.</span> <span class="token parameter variable">-type</span> d <span class="token parameter variable">-empty</span>
|
||||
</span></code></pre>
|
||||
<p>删除目录中的所有空文件</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">find</span> <span class="token builtin class-name">.</span> <span class="token parameter variable">-type</span> f <span class="token parameter variable">-empty</span> <span class="token parameter variable">-delete</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">find</span> <span class="token builtin class-name">.</span> <span class="token parameter variable">-type</span> f <span class="token parameter variable">-empty</span> <span class="token parameter variable">-delete</span>
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap"><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 col-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">
|
||||
@ -348,75 +348,75 @@
|
||||
<table><thead><tr><th>Option</th><th>Description</th></tr></thead><tbody><tr><td><code>-mtime +0</code></td><td>24 小时前修改</td></tr><tr><td><code>-mtime 0</code></td><td>从现在到 1 天前修改</td></tr><tr><td><code>-mtime -1</code></td><td>不到 1 天前修改(与 <code>-mtime 0</code> 相同)</td></tr><tr><td><code>-mtime 1</code></td><td>24 至 48 小时前修改</td></tr><tr><td><code>-mtime +1</code></td><td>超过 48 小时前修改</td></tr><tr><td><code>-mtime +1w</code></td><td>上次修改时间超过 1 周前</td></tr><tr><td><code>-atime 0</code></td><td>从现在到 24 小时前最后一次访问</td></tr><tr><td><code>-atime +0</code></td><td>访问时间超过 24 小时</td></tr><tr><td><code>-atime 1</code></td><td>在 24 至 48 小时前访问</td></tr><tr><td><code>-atime +1</code></td><td>访问时间超过 48 小时</td></tr><tr><td><code>-atime -1</code></td><td>不到 24 小时前访问过(与 <code>-atime 0</code> 相同)</td></tr><tr><td><code>-ctime -6h30m</code></td><td>文件状态在过去 6 小时 30 分钟内发生变化</td></tr></tbody></table>
|
||||
</div></div></div></div></div><div class="wrap"><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">
|
||||
<p>查找最近 50 天修改的文件</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">find</span> / <span class="token parameter variable">-mtime</span> <span class="token number">50</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">find</span> / <span class="token parameter variable">-mtime</span> <span class="token number">50</span>
|
||||
</span></code></pre>
|
||||
<p>查找最近 50 天访问的文件</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">find</span> / <span class="token parameter variable">-atime</span> <span class="token number">50</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">find</span> / <span class="token parameter variable">-atime</span> <span class="token number">50</span>
|
||||
</span></code></pre>
|
||||
<p>查找最近 50-100 天修改的文件</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">find</span> / <span class="token parameter variable">-mtime</span> +50 –mtime <span class="token parameter variable">-100</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">find</span> / <span class="token parameter variable">-mtime</span> +50 –mtime <span class="token parameter variable">-100</span>
|
||||
</span></code></pre>
|
||||
<p>查找最近 1 小时内更改的文件</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">find</span> / <span class="token parameter variable">-cmin</span> <span class="token parameter variable">-60</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">find</span> / <span class="token parameter variable">-cmin</span> <span class="token parameter variable">-60</span>
|
||||
</span></code></pre>
|
||||
<p>查找最近 1 小时内修改过的文件</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">find</span> / <span class="token parameter variable">-mmin</span> <span class="token parameter variable">-60</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">find</span> / <span class="token parameter variable">-mmin</span> <span class="token parameter variable">-60</span>
|
||||
</span></code></pre>
|
||||
<p>查找最近 1 小时内访问过的文件</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">find</span> / <span class="token parameter variable">-amin</span> <span class="token parameter variable">-60</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">find</span> / <span class="token parameter variable">-amin</span> <span class="token parameter variable">-60</span>
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap"><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">
|
||||
<!--rehype:body-class=cols-2-->
|
||||
</div></div><div class="h2wrap-body cols-2"><div class="wrap row-span-3"><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-3-->
|
||||
<p>查找并删除多个文件</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">find</span> <span class="token builtin class-name">.</span> <span class="token parameter variable">-type</span> f <span class="token parameter variable">-name</span> <span class="token string">"*.mp3"</span> <span class="token parameter variable">-exec</span> <span class="token function">rm</span> <span class="token parameter variable">-f</span> <span class="token punctuation">{</span><span class="token punctuation">}</span> <span class="token punctuation">\</span><span class="token punctuation">;</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">find</span> <span class="token builtin class-name">.</span> <span class="token parameter variable">-type</span> f <span class="token parameter variable">-name</span> <span class="token string">"*.mp3"</span> <span class="token parameter variable">-exec</span> <span class="token function">rm</span> <span class="token parameter variable">-f</span> <span class="token punctuation">{</span><span class="token punctuation">}</span> <span class="token punctuation">\</span><span class="token punctuation">;</span>
|
||||
</span></code></pre>
|
||||
<p>查找和删除单个文件</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">find</span> <span class="token builtin class-name">.</span> <span class="token parameter variable">-type</span> f <span class="token parameter variable">-name</span> <span class="token string">"tecmint.txt"</span> <span class="token parameter variable">-exec</span> <span class="token function">rm</span> <span class="token parameter variable">-f</span> <span class="token punctuation">{</span><span class="token punctuation">}</span> <span class="token punctuation">\</span><span class="token punctuation">;</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">find</span> <span class="token builtin class-name">.</span> <span class="token parameter variable">-type</span> f <span class="token parameter variable">-name</span> <span class="token string">"tecmint.txt"</span> <span class="token parameter variable">-exec</span> <span class="token function">rm</span> <span class="token parameter variable">-f</span> <span class="token punctuation">{</span><span class="token punctuation">}</span> <span class="token punctuation">\</span><span class="token punctuation">;</span>
|
||||
</span></code></pre>
|
||||
<p>查找和删除 100mb 文件</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">find</span> / <span class="token parameter variable">-type</span> f <span class="token parameter variable">-size</span> +100m <span class="token parameter variable">-exec</span> <span class="token function">rm</span> <span class="token parameter variable">-f</span> <span class="token punctuation">{</span><span class="token punctuation">}</span> <span class="token punctuation">\</span><span class="token punctuation">;</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">find</span> / <span class="token parameter variable">-type</span> f <span class="token parameter variable">-size</span> +100m <span class="token parameter variable">-exec</span> <span class="token function">rm</span> <span class="token parameter variable">-f</span> <span class="token punctuation">{</span><span class="token punctuation">}</span> <span class="token punctuation">\</span><span class="token punctuation">;</span>
|
||||
</span></code></pre>
|
||||
<p>查找特定文件并删除</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">find</span> / <span class="token parameter variable">-type</span> f <span class="token parameter variable">-name</span> *.mp3 <span class="token parameter variable">-size</span> +10m <span class="token parameter variable">-exec</span> <span class="token function">rm</span> <span class="token punctuation">{</span><span class="token punctuation">}</span> <span class="token punctuation">\</span><span class="token punctuation">;</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">find</span> / <span class="token parameter variable">-type</span> f <span class="token parameter variable">-name</span> *.mp3 <span class="token parameter variable">-size</span> +10m <span class="token parameter variable">-exec</span> <span class="token function">rm</span> <span class="token punctuation">{</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"><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-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">find</span> ./ <span class="token parameter variable">-type</span> f <span class="token parameter variable">-exec</span> <span class="token function">sed</span> <span class="token parameter variable">-i</span> <span class="token string">'s/find/replace/g'</span> <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 line-number" line="2">$ <span class="token function">find</span> ./ <span class="token parameter variable">-type</span> f <span class="token parameter variable">-readable</span> <span class="token parameter variable">-writable</span> <span class="token parameter variable">-exec</span> <span class="token function">sed</span> <span class="token parameter variable">-i</span> <span class="token string">"s/old/new/g"</span> <span class="token punctuation">{</span><span class="token punctuation">}</span> <span class="token punctuation">\</span><span class="token punctuation">;</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">find</span> ./ <span class="token parameter variable">-type</span> f <span class="token parameter variable">-exec</span> <span class="token function">sed</span> <span class="token parameter variable">-i</span> <span class="token string">'s/find/replace/g'</span> <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 function">find</span> ./ <span class="token parameter variable">-type</span> f <span class="token parameter variable">-readable</span> <span class="token parameter variable">-writable</span> <span class="token parameter variable">-exec</span> <span class="token function">sed</span> <span class="token parameter variable">-i</span> <span class="token string">"s/old/new/g"</span> <span class="token punctuation">{</span><span class="token punctuation">}</span> <span class="token punctuation">\</span><span class="token punctuation">;</span>
|
||||
</span></code></pre>
|
||||
<p>参见:<a href="./sed.html">sed</a> 命令</p>
|
||||
</div></div></div><div class="wrap"><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-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">find</span> <span class="token builtin class-name">.</span> <span class="token parameter variable">-type</span> f <span class="token parameter variable">-name</span> <span class="token string">'file*'</span> <span class="token parameter variable">-exec</span> <span class="token function">mv</span> <span class="token punctuation">{</span><span class="token punctuation">}</span> <span class="token punctuation">{</span><span class="token punctuation">}</span>_renamed <span class="token punctuation">\</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="2">$ <span class="token function">find</span> <span class="token builtin class-name">.</span> <span class="token parameter variable">-type</span> f <span class="token parameter variable">-name</span> <span class="token string">'file*'</span> <span class="token parameter variable">-exec</span> <span class="token function">sh</span> <span class="token parameter variable">-c</span> <span class="token string">'x="{}"; mv "$x" "${x}.bak"'</span> <span class="token punctuation">\</span><span class="token punctuation">;</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">find</span> <span class="token builtin class-name">.</span> <span class="token parameter variable">-type</span> f <span class="token parameter variable">-name</span> <span class="token string">'file*'</span> <span class="token parameter variable">-exec</span> <span class="token function">mv</span> <span class="token punctuation">{</span><span class="token punctuation">}</span> <span class="token punctuation">{</span><span class="token punctuation">}</span>_renamed <span class="token punctuation">\</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line">$ <span class="token function">find</span> <span class="token builtin class-name">.</span> <span class="token parameter variable">-type</span> f <span class="token parameter variable">-name</span> <span class="token string">'file*'</span> <span class="token parameter variable">-exec</span> <span class="token function">sh</span> <span class="token parameter variable">-c</span> <span class="token string">'x="{}"; mv "$x" "${x}.bak"'</span> <span class="token punctuation">\</span><span class="token punctuation">;</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">find</span> <span class="token builtin class-name">.</span> <span class="token parameter variable">-name</span> <span class="token string">'*.mp3'</span> <span class="token parameter variable">-exec</span> <span class="token function">mv</span> <span class="token punctuation">{</span><span class="token punctuation">}</span> /tmp/music <span class="token punctuation">\</span><span class="token punctuation">;</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">find</span> <span class="token builtin class-name">.</span> <span class="token parameter variable">-name</span> <span class="token string">'*.mp3'</span> <span class="token parameter variable">-exec</span> <span class="token function">mv</span> <span class="token punctuation">{</span><span class="token punctuation">}</span> /tmp/music <span class="token punctuation">\</span><span class="token punctuation">;</span>
|
||||
</span></code></pre>
|
||||
<p>查找并将其移动到特定目录</p>
|
||||
</div></div></div><div class="wrap"><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-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">find</span> <span class="token builtin class-name">.</span> <span class="token parameter variable">-name</span> <span class="token string">'*2020*.xml'</span> <span class="token parameter variable">-exec</span> <span class="token function">cp</span> <span class="token parameter variable">-r</span> <span class="token string">"{}"</span> /tmp/backup <span class="token punctuation">\</span><span class="token punctuation">;</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">find</span> <span class="token builtin class-name">.</span> <span class="token parameter variable">-name</span> <span class="token string">'*2020*.xml'</span> <span class="token parameter variable">-exec</span> <span class="token function">cp</span> <span class="token parameter variable">-r</span> <span class="token string">"{}"</span> /tmp/backup <span class="token punctuation">\</span><span class="token punctuation">;</span>
|
||||
</span></code></pre>
|
||||
<p>查找并将其复制到特定目录</p>
|
||||
</div></div></div><div class="wrap"><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-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">find</span> download <span class="token parameter variable">-type</span> f <span class="token parameter variable">-iname</span> <span class="token string">'*.csv'</span> <span class="token operator">|</span> <span class="token function">xargs</span> <span class="token function">cat</span> <span class="token operator">></span> merged.csv
|
||||
</span><span class="code-line line-number" line="2">$ <span class="token function">find</span> download <span class="token parameter variable">-type</span> f <span class="token parameter variable">-name</span> <span class="token string">'*.gz'</span> <span class="token parameter variable">-exec</span> <span class="token function">cat</span> <span class="token punctuation">{</span><span class="token punctuation">}</span> <span class="token punctuation">\</span><span class="token punctuation">;</span> <span class="token operator">></span> output
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">find</span> download <span class="token parameter variable">-type</span> f <span class="token parameter variable">-iname</span> <span class="token string">'*.csv'</span> <span class="token operator">|</span> <span class="token function">xargs</span> <span class="token function">cat</span> <span class="token operator">></span> merged.csv
|
||||
</span><span class="code-line">$ <span class="token function">find</span> download <span class="token parameter variable">-type</span> f <span class="token parameter variable">-name</span> <span class="token string">'*.gz'</span> <span class="token parameter variable">-exec</span> <span class="token function">cat</span> <span class="token punctuation">{</span><span class="token punctuation">}</span> <span class="token punctuation">\</span><span class="token punctuation">;</span> <span class="token operator">></span> output
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">find</span> <span class="token builtin class-name">.</span> <span class="token parameter variable">-printf</span> <span class="token string">"%T+<span class="token entity" title="\t">\t</span>%p<span class="token entity" title="\n">\n</span>"</span> <span class="token operator">|</span> <span class="token function">sort</span>
|
||||
</span><span class="code-line line-number" line="2">$ <span class="token function">find</span> <span class="token builtin class-name">.</span> <span class="token parameter variable">-printf</span> <span class="token string">"%T+<span class="token entity" title="\t">\t</span>%p<span class="token entity" title="\n">\n</span>"</span> <span class="token operator">|</span> <span class="token function">sort</span> <span class="token parameter variable">-r</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">find</span> <span class="token builtin class-name">.</span> <span class="token parameter variable">-printf</span> <span class="token string">"%T+<span class="token entity" title="\t">\t</span>%p<span class="token entity" title="\n">\n</span>"</span> <span class="token operator">|</span> <span class="token function">sort</span>
|
||||
</span><span class="code-line">$ <span class="token function">find</span> <span class="token builtin class-name">.</span> <span class="token parameter variable">-printf</span> <span class="token string">"%T+<span class="token entity" title="\t">\t</span>%p<span class="token entity" title="\n">\n</span>"</span> <span class="token operator">|</span> <span class="token function">sort</span> <span class="token parameter variable">-r</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap row-span-2"><div class="wrap-header h3wrap"><h3 id="查找和-chmod"><a aria-hidden="true" tabindex="-1" href="#查找和-chmod"><span class="icon icon-link"></span></a>查找和 chmod</h3><div class="wrap-body">
|
||||
<!--rehype:wrap-class=row-span-2-->
|
||||
<p>查找文件并将权限设置为 644。</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">find</span> / <span class="token parameter variable">-type</span> f <span class="token parameter variable">-perm</span> 0777 <span class="token parameter variable">-print</span> <span class="token parameter variable">-exec</span> <span class="token function">chmod</span> <span class="token number">644</span> <span class="token punctuation">{</span><span class="token punctuation">}</span> <span class="token punctuation">\</span><span class="token punctuation">;</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">find</span> / <span class="token parameter variable">-type</span> f <span class="token parameter variable">-perm</span> 0777 <span class="token parameter variable">-print</span> <span class="token parameter variable">-exec</span> <span class="token function">chmod</span> <span class="token number">644</span> <span class="token punctuation">{</span><span class="token punctuation">}</span> <span class="token punctuation">\</span><span class="token punctuation">;</span>
|
||||
</span></code></pre>
|
||||
<p>查找目录并将权限设置为 755。</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">find</span> / <span class="token parameter variable">-type</span> d <span class="token parameter variable">-perm</span> <span class="token number">777</span> <span class="token parameter variable">-print</span> <span class="token parameter variable">-exec</span> <span class="token function">chmod</span> <span class="token number">755</span> <span class="token punctuation">{</span><span class="token punctuation">}</span> <span class="token punctuation">\</span><span class="token punctuation">;</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">find</span> / <span class="token parameter variable">-type</span> d <span class="token parameter variable">-perm</span> <span class="token number">777</span> <span class="token parameter variable">-print</span> <span class="token parameter variable">-exec</span> <span class="token function">chmod</span> <span class="token number">755</span> <span class="token punctuation">{</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"><div class="wrap-header h3wrap"><h3 id="查找并-tar"><a aria-hidden="true" tabindex="-1" href="#查找并-tar"><span class="icon icon-link"></span></a>查找并 tar</h3><div class="wrap-body">
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">find</span> <span class="token builtin class-name">.</span> <span class="token parameter variable">-type</span> f <span class="token parameter variable">-name</span> <span class="token string">"*.java"</span> <span class="token operator">|</span> <span class="token function">xargs</span> <span class="token function">tar</span> cvf myfile.tar
|
||||
</span><span class="code-line line-number" line="2">$ <span class="token function">find</span> <span class="token builtin class-name">.</span> <span class="token parameter variable">-type</span> f <span class="token parameter variable">-name</span> <span class="token string">"*.java"</span> <span class="token operator">|</span> <span class="token function">xargs</span> <span class="token function">tar</span> rvf myfile.tar
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">find</span> <span class="token builtin class-name">.</span> <span class="token parameter variable">-type</span> f <span class="token parameter variable">-name</span> <span class="token string">"*.java"</span> <span class="token operator">|</span> <span class="token function">xargs</span> <span class="token function">tar</span> cvf myfile.tar
|
||||
</span><span class="code-line">$ <span class="token function">find</span> <span class="token builtin class-name">.</span> <span class="token parameter variable">-type</span> f <span class="token parameter variable">-name</span> <span class="token string">"*.java"</span> <span class="token operator">|</span> <span class="token function">xargs</span> <span class="token function">tar</span> rvf myfile.tar
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div></div></div><footer class="footer-wrap"><footer class="max-container">© 2022 Kenny Wang, All rights reserved.</footer></footer></body>
|
||||
</html>
|
||||
|
274
docs/git.html
274
docs/git.html
@ -39,302 +39,302 @@
|
||||
</div></header><div class="h1wrap-body"><div class="wrap"><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"><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">
|
||||
<p>创建一个新的本地存储库</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> init <span class="token punctuation">[</span>project name<span class="token punctuation">]</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> init <span class="token punctuation">[</span>project name<span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
<p>克隆存储库</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> clone git_url
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> clone git_url
|
||||
</span></code></pre>
|
||||
<p>将存储库克隆到指定目录</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> clone git_url 指定目录
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> clone git_url 指定目录
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap 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-->
|
||||
<p>在工作目录中<strong>显示</strong>修改后的文件,为您的下一次提交暂存</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> status
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> status
|
||||
</span></code></pre>
|
||||
<p>暂存文件,准备提交</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> <span class="token function">add</span> <span class="token punctuation">[</span>file<span class="token punctuation">]</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> <span class="token function">add</span> <span class="token punctuation">[</span>file<span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
<p>暂存<strong>所有</strong>更改的文件,准备提交</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> <span class="token function">add</span> <span class="token builtin class-name">.</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> <span class="token function">add</span> <span class="token builtin class-name">.</span>
|
||||
</span></code></pre>
|
||||
<p>将所有暂存文件提交到版本化历史记录</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> commit <span class="token parameter variable">-m</span> <span class="token string">"commit message"</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> commit <span class="token parameter variable">-m</span> <span class="token string">"commit message"</span>
|
||||
</span></code></pre>
|
||||
<p>将所有跟踪的文件提交到版本化历史记录</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> commit <span class="token parameter variable">-am</span> <span class="token string">"commit message"</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> commit <span class="token parameter variable">-am</span> <span class="token string">"commit message"</span>
|
||||
</span></code></pre>
|
||||
<p>取消暂存文件,保留文件更改</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> reset <span class="token punctuation">[</span>file<span class="token punctuation">]</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> reset <span class="token punctuation">[</span>file<span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
<p>将所有内容恢复到最后一次提交</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> reset <span class="token parameter variable">--hard</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> reset <span class="token parameter variable">--hard</span>
|
||||
</span></code></pre>
|
||||
<p>已更改但未暂存内容的差异</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> <span class="token function">diff</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> <span class="token function">diff</span>
|
||||
</span></code></pre>
|
||||
<p>已 commited 但尚未提交的内容的差异</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> <span class="token function">diff</span> <span class="token parameter variable">--staged</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> <span class="token function">diff</span> <span class="token parameter variable">--staged</span>
|
||||
</span></code></pre>
|
||||
<p>在指定分支之前应用当前分支的任何提交</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> rebase <span class="token punctuation">[</span>branch<span class="token punctuation">]</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> rebase <span class="token punctuation">[</span>branch<span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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">
|
||||
<p>设置将附加到您的提交和标签的名称</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> config <span class="token parameter variable">--global</span> user.name <span class="token string">"name"</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> config <span class="token parameter variable">--global</span> user.name <span class="token string">"name"</span>
|
||||
</span></code></pre>
|
||||
<p>设置将附加到您的提交和标签 tags 的<strong>电子邮件地址</strong></p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> config <span class="token parameter variable">--global</span> user.email <span class="token string">"email"</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> config <span class="token parameter variable">--global</span> user.email <span class="token string">"email"</span>
|
||||
</span></code></pre>
|
||||
<p>启用 Git 输出的一些着色</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> config <span class="token parameter variable">--global</span> color.ui auto
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> config <span class="token parameter variable">--global</span> color.ui auto
|
||||
</span></code></pre>
|
||||
<p>在文本编辑器中编辑全局配置文件</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> config <span class="token parameter variable">--global</span> <span class="token parameter variable">--edit</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> config <span class="token parameter variable">--global</span> <span class="token parameter variable">--edit</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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">
|
||||
<p>列出所有本地分支</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> branch
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> branch
|
||||
</span></code></pre>
|
||||
<p>列出所有分支,本地和远程</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> branch <span class="token parameter variable">-av</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> branch <span class="token parameter variable">-av</span>
|
||||
</span></code></pre>
|
||||
<p>切换到 my_branch,并更新工作目录</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> checkout my_branch
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> checkout my_branch
|
||||
</span></code></pre>
|
||||
<p>创建一个名为 new_branch 的新分支</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> checkout <span class="token parameter variable">-b</span> new_branch
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> checkout <span class="token parameter variable">-b</span> new_branch
|
||||
</span></code></pre>
|
||||
<p>删除名为 my_branch 的分支</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> branch <span class="token parameter variable">-d</span> my_branch
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> branch <span class="token parameter variable">-d</span> my_branch
|
||||
</span></code></pre>
|
||||
<p>将分支 A 合并到分支 B</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> checkout branchB
|
||||
</span><span class="code-line line-number" line="2">$ <span class="token function">git</span> merge branchA
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> checkout branchB
|
||||
</span><span class="code-line">$ <span class="token function">git</span> merge branchA
|
||||
</span></code></pre>
|
||||
<p>标记当前提交</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> tag my_tag
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> tag my_tag
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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">
|
||||
<p>显示当前活动分支的提交历史</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> log
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> log
|
||||
</span></code></pre>
|
||||
<p>显示 branchA 上不在 branchB 上的提交</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> log branchB<span class="token punctuation">..</span>branchA
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> log branchB<span class="token punctuation">..</span>branchA
|
||||
</span></code></pre>
|
||||
<p>显示更改文件的提交,即使跨重命名</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> log <span class="token parameter variable">--follow</span> <span class="token punctuation">[</span>file<span class="token punctuation">]</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> log <span class="token parameter variable">--follow</span> <span class="token punctuation">[</span>file<span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
<p>显示 branchA 中的内容与 branchB 中的内容的差异</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> <span class="token function">diff</span> branchB<span class="token punctuation">..</span>.branchA
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> <span class="token function">diff</span> branchB<span class="token punctuation">..</span>.branchA
|
||||
</span></code></pre>
|
||||
<p>以人类可读的格式显示 Git 中的任何对象</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> show <span class="token punctuation">[</span>SHA<span class="token punctuation">]</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> show <span class="token punctuation">[</span>SHA<span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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">
|
||||
<p>从该 Git 远程获取所有分支</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> fetch <span class="token punctuation">[</span>alias<span class="token punctuation">]</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> fetch <span class="token punctuation">[</span>alias<span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
<p>将远程分支合并到当前分支以使其保持最新状态</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> merge <span class="token punctuation">[</span>alias<span class="token punctuation">]</span>/<span class="token punctuation">[</span>branch<span class="token punctuation">]</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token comment"># 没有快进</span>
|
||||
</span><span class="code-line line-number" line="3">$ <span class="token function">git</span> merge --no-ff <span class="token punctuation">[</span>alias<span class="token punctuation">]</span>/<span class="token punctuation">[</span>branch<span class="token punctuation">]</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token comment"># 仅快进</span>
|
||||
</span><span class="code-line line-number" line="5">$ <span class="token function">git</span> merge --ff-only <span class="token punctuation">[</span>alias<span class="token punctuation">]</span>/<span class="token punctuation">[</span>branch<span class="token punctuation">]</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> merge <span class="token punctuation">[</span>alias<span class="token punctuation">]</span>/<span class="token punctuation">[</span>branch<span class="token punctuation">]</span>
|
||||
</span><span class="code-line"><span class="token comment"># 没有快进</span>
|
||||
</span><span class="code-line">$ <span class="token function">git</span> merge --no-ff <span class="token punctuation">[</span>alias<span class="token punctuation">]</span>/<span class="token punctuation">[</span>branch<span class="token punctuation">]</span>
|
||||
</span><span class="code-line"><span class="token comment"># 仅快进</span>
|
||||
</span><span class="code-line">$ <span class="token function">git</span> merge --ff-only <span class="token punctuation">[</span>alias<span class="token punctuation">]</span>/<span class="token punctuation">[</span>branch<span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
<p>将本地分支提交传输到远程存储库分支</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> push <span class="token punctuation">[</span>alias<span class="token punctuation">]</span> <span class="token punctuation">[</span>branch<span class="token punctuation">]</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> push <span class="token punctuation">[</span>alias<span class="token punctuation">]</span> <span class="token punctuation">[</span>branch<span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
<p>从跟踪远程分支获取并合并任何提交</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> pull
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> pull
|
||||
</span></code></pre>
|
||||
<p>将另一个分支的一个特定提交合并到当前分支</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> cherry-pick <span class="token punctuation">[</span>commit_id<span class="token punctuation">]</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> cherry-pick <span class="token punctuation">[</span>commit_id<span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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">
|
||||
<p>添加一个 git URL 作为别名</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> remote <span class="token function">add</span> <span class="token punctuation">[</span>alias<span class="token punctuation">]</span> <span class="token punctuation">[</span>url<span class="token punctuation">]</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> remote <span class="token function">add</span> <span class="token punctuation">[</span>alias<span class="token punctuation">]</span> <span class="token punctuation">[</span>url<span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
<p>显示您设置的远程存储库的名称</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> remote
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> remote
|
||||
</span></code></pre>
|
||||
<p>显示远程存储库的名称和 URL</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> remote <span class="token parameter variable">-v</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> remote <span class="token parameter variable">-v</span>
|
||||
</span></code></pre>
|
||||
<p>删除远程存储库</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> remote <span class="token function">rm</span> <span class="token punctuation">[</span>remote repo name<span class="token punctuation">]</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> remote <span class="token function">rm</span> <span class="token punctuation">[</span>remote repo name<span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
<p>更改 git repo 的 URL</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> remote set-url origin <span class="token punctuation">[</span>git_url<span class="token punctuation">]</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> remote set-url origin <span class="token punctuation">[</span>git_url<span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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">
|
||||
<p>保存已修改和分阶段的更改</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> stash
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> stash
|
||||
</span></code></pre>
|
||||
<p>列出隐藏文件更改的堆栈顺序</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> stash list
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> stash list
|
||||
</span></code></pre>
|
||||
<p>从存储堆栈顶部编写工作</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> stash pop
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> stash pop
|
||||
</span></code></pre>
|
||||
<p>丢弃存储堆栈顶部的更改</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> stash drop
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> stash drop
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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">
|
||||
<p>从项目中删除文件并暂存删除以进行提交</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> <span class="token function">rm</span> <span class="token punctuation">[</span>file<span class="token punctuation">]</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> <span class="token function">rm</span> <span class="token punctuation">[</span>file<span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
<p>更改现有文件路径并暂存移动</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> <span class="token function">mv</span> <span class="token punctuation">[</span>existing-path<span class="token punctuation">]</span> <span class="token punctuation">[</span>new-path<span class="token punctuation">]</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> <span class="token function">mv</span> <span class="token punctuation">[</span>existing-path<span class="token punctuation">]</span> <span class="token punctuation">[</span>new-path<span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
<p>显示所有提交日志,并指示任何移动的路径</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> log <span class="token parameter variable">--stat</span> <span class="token parameter variable">-M</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> log <span class="token parameter variable">--stat</span> <span class="token parameter variable">-M</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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-gitignore"><code class="language-gitignore code-highlight"><span class="code-line line-number" line="1"><span class="token entry string"><span class="token punctuation">/</span>logs<span class="token punctuation">/</span><span class="token operator">*</span></span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token comment"># “!” 意思是不要忽视</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token entry string"><span class="token operator">!</span>logs<span class="token punctuation">/</span>.gitkeep</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token comment"># 忽略 Mac 系统文件</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token entry string">.DS_store</span>
|
||||
</span><span class="code-line line-number" line="6"><span class="token comment"># 忽略 node_modules 文件夹</span>
|
||||
</span><span class="code-line line-number" line="7"><span class="token entry string">node_modules</span>
|
||||
</span><span class="code-line line-number" line="8"><span class="token comment"># 忽略 SASS 配置文件</span>
|
||||
</span><span class="code-line line-number" line="9"><span class="token entry string">.sass-cache</span>
|
||||
<pre class="language-gitignore"><code class="language-gitignore code-highlight"><span class="code-line"><span class="token entry string"><span class="token punctuation">/</span>logs<span class="token punctuation">/</span><span class="token operator">*</span></span>
|
||||
</span><span class="code-line"><span class="token comment"># “!” 意思是不要忽视</span>
|
||||
</span><span class="code-line"><span class="token entry string"><span class="token operator">!</span>logs<span class="token punctuation">/</span>.gitkeep</span>
|
||||
</span><span class="code-line"><span class="token comment"># 忽略 Mac 系统文件</span>
|
||||
</span><span class="code-line"><span class="token entry string">.DS_store</span>
|
||||
</span><span class="code-line"><span class="token comment"># 忽略 node_modules 文件夹</span>
|
||||
</span><span class="code-line"><span class="token entry string">node_modules</span>
|
||||
</span><span class="code-line"><span class="token comment"># 忽略 SASS 配置文件</span>
|
||||
</span><span class="code-line"><span class="token entry string">.sass-cache</span>
|
||||
</span></code></pre>
|
||||
<p><code>.gitignore</code> 文件指定了 Git 应该忽略的未跟踪的文件</p>
|
||||
</div></div></div></div></div><div class="wrap"><div class="wrap-header h2wrap"><h2 id="git-技巧"><a aria-hidden="true" tabindex="-1" href="#git-技巧"><span class="icon icon-link"></span></a>Git 技巧</h2><div class="wrap-body">
|
||||
</div></div><div class="h2wrap-body"><div class="wrap"><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">
|
||||
</div></div><div class="h3wrap-body"><div class="wrap"><div class="wrap-header h4wrap"><h4 id="重命名为new"><a aria-hidden="true" tabindex="-1" href="#重命名为new"><span class="icon icon-link"></span></a><strong>重命名</strong>为<code>new</code></h4><div class="wrap-body">
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> branch <span class="token parameter variable">-m</span> <span class="token operator"><</span>new<span class="token operator">></span>
|
||||
</span><span class="code-line line-number" line="2">$ <span class="token function">git</span> branch <span class="token parameter variable">-m</span> <span class="token operator"><</span>old<span class="token operator">></span> <span class="token operator"><</span>new<span class="token operator">></span> <span class="token comment"># 重命名分支 </span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> branch <span class="token parameter variable">-m</span> <span class="token operator"><</span>new<span class="token operator">></span>
|
||||
</span><span class="code-line">$ <span class="token function">git</span> branch <span class="token parameter variable">-m</span> <span class="token operator"><</span>old<span class="token operator">></span> <span class="token operator"><</span>new<span class="token operator">></span> <span class="token comment"># 重命名分支 </span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h4wrap"><h4 id="推送并重置"><a aria-hidden="true" tabindex="-1" href="#推送并重置"><span class="icon icon-link"></span></a><strong>推送</strong>并重置</h4><div class="wrap-body">
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> push origin <span class="token parameter variable">-u</span> <span class="token operator"><</span>new<span class="token operator">></span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> push origin <span class="token parameter variable">-u</span> <span class="token operator"><</span>new<span class="token operator">></span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h4wrap"><h4 id="删除远程分支"><a aria-hidden="true" tabindex="-1" href="#删除远程分支"><span class="icon icon-link"></span></a><strong>删除</strong>远程分支</h4><div class="wrap-body">
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> push origin <span class="token parameter variable">--delete</span> <span class="token operator"><</span>old<span class="token operator">></span> <span class="token comment"># 方法1</span>
|
||||
</span><span class="code-line line-number" line="2">$ <span class="token function">git</span> push origin :oldBranchName <span class="token comment"># 方法2</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> push origin <span class="token parameter variable">--delete</span> <span class="token operator"><</span>old<span class="token operator">></span> <span class="token comment"># 方法1</span>
|
||||
</span><span class="code-line">$ <span class="token function">git</span> push origin :oldBranchName <span class="token comment"># 方法2</span>
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="log"><a aria-hidden="true" tabindex="-1" href="#log"><span class="icon icon-link"></span></a>Log</h3><div class="wrap-body">
|
||||
<p>按内容搜索更改</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> log -S<span class="token string">'<a term in the source>'</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> log -S<span class="token string">'<a term in the source>'</span>
|
||||
</span></code></pre>
|
||||
<p>显示特定文件随时间的变化</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> log <span class="token parameter variable">-p</span> <span class="token operator"><</span>file_name<span class="token operator">></span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> log <span class="token parameter variable">-p</span> <span class="token operator"><</span>file_name<span class="token operator">></span>
|
||||
</span></code></pre>
|
||||
<p>打印出很酷的日志可视化</p>
|
||||
<pre class="wrap-text"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> log <span class="token parameter variable">--pretty</span><span class="token operator">=</span>oneline <span class="token parameter variable">--graph</span> <span class="token parameter variable">--decorate</span> <span class="token parameter variable">--all</span>
|
||||
<pre class="wrap-text"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> log <span class="token parameter variable">--pretty</span><span class="token operator">=</span>oneline <span class="token parameter variable">--graph</span> <span class="token parameter variable">--decorate</span> <span class="token parameter variable">--all</span>
|
||||
</span></code></pre>
|
||||
<!--rehype:className=wrap-text-->
|
||||
</div></div></div><div class="wrap 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-->
|
||||
<p>列出所有分支及其上游</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> branch <span class="token parameter variable">-vv</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> branch <span class="token parameter variable">-vv</span>
|
||||
</span></code></pre>
|
||||
<p>快速切换到上一个分支</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> checkout -
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> checkout -
|
||||
</span></code></pre>
|
||||
<p>只获取远程分支</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> branch <span class="token parameter variable">-r</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> branch <span class="token parameter variable">-r</span>
|
||||
</span></code></pre>
|
||||
<p>从另一个分支签出单个文件</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> checkout <span class="token operator"><</span>branch<span class="token operator">></span> -- <span class="token operator"><</span>file<span class="token operator">></span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> checkout <span class="token operator"><</span>branch<span class="token operator">></span> -- <span class="token operator"><</span>file<span class="token operator">></span>
|
||||
</span></code></pre>
|
||||
<p>删除本地存在远程不存在的分支</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1"><span class="token function">git</span> remote prune origin
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line"><span class="token function">git</span> remote prune origin
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="commit"><a aria-hidden="true" tabindex="-1" href="#commit"><span class="icon icon-link"></span></a>Commit</h3><div class="wrap-body">
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> commit <span class="token parameter variable">-v</span> <span class="token parameter variable">--amend</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> commit <span class="token parameter variable">-v</span> <span class="token parameter variable">--amend</span>
|
||||
</span></code></pre>
|
||||
<p>重写最后的提交信息</p>
|
||||
</div></div></div><div class="wrap"><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-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1"><span class="token function">git</span> config core.fileMode <span class="token boolean">false</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line"><span class="token function">git</span> config core.fileMode <span class="token boolean">false</span>
|
||||
</span></code></pre>
|
||||
<p>不再将文件的权限变化视作改动</p>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="git-别名"><a aria-hidden="true" tabindex="-1" href="#git-别名"><span class="icon icon-link"></span></a>Git 别名</h3><div class="wrap-body">
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> config <span class="token parameter variable">--global</span> alias.co checkout
|
||||
</span><span class="code-line line-number" line="2">$ <span class="token function">git</span> config <span class="token parameter variable">--global</span> alias.br branch
|
||||
</span><span class="code-line line-number" line="3">$ <span class="token function">git</span> config <span class="token parameter variable">--global</span> alias.ci commit
|
||||
</span><span class="code-line line-number" line="4">$ <span class="token function">git</span> config <span class="token parameter variable">--global</span> alias.st status
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> config <span class="token parameter variable">--global</span> alias.co checkout
|
||||
</span><span class="code-line">$ <span class="token function">git</span> config <span class="token parameter variable">--global</span> alias.br branch
|
||||
</span><span class="code-line">$ <span class="token function">git</span> config <span class="token parameter variable">--global</span> alias.ci commit
|
||||
</span><span class="code-line">$ <span class="token function">git</span> config <span class="token parameter variable">--global</span> alias.st status
|
||||
</span></code></pre>
|
||||
<p>也可以看看:<a href="https://gist.github.com/johnpolacek/69604a1f6861129ef088">More Aliases</a></p>
|
||||
</div></div></div><div class="wrap"><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-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1"><span class="token comment"># 查看git 的设置</span>
|
||||
</span><span class="code-line line-number" line="2">$ <span class="token function">git</span> config <span class="token parameter variable">--get</span> core.ignorecase
|
||||
</span><span class="code-line line-number" line="3"><span class="token comment"># 设置大小写敏感</span>
|
||||
</span><span class="code-line line-number" line="4">$ <span class="token function">git</span> config core.ignorecase <span class="token boolean">false</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token comment"># 远程有俩相同目录,通过这种方式清除掉,然后提交记录</span>
|
||||
</span><span class="code-line line-number" line="6">$ <span class="token function">git</span> <span class="token function">rm</span> <span class="token parameter variable">-r</span> <span class="token parameter variable">--cached</span> <span class="token operator"><</span>目录/文件<span class="token operator">></span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line"><span class="token comment"># 查看git 的设置</span>
|
||||
</span><span class="code-line">$ <span class="token function">git</span> config <span class="token parameter variable">--get</span> core.ignorecase
|
||||
</span><span class="code-line"><span class="token comment"># 设置大小写敏感</span>
|
||||
</span><span class="code-line">$ <span class="token function">git</span> config core.ignorecase <span class="token boolean">false</span>
|
||||
</span><span class="code-line"><span class="token comment"># 远程有俩相同目录,通过这种方式清除掉,然后提交记录</span>
|
||||
</span><span class="code-line">$ <span class="token function">git</span> <span class="token function">rm</span> <span class="token parameter variable">-r</span> <span class="token parameter variable">--cached</span> <span class="token operator"><</span>目录/文件<span class="token operator">></span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap row-span-4"><div class="wrap-header h3wrap"><h3 id="修改远程-commit-记录"><a aria-hidden="true" tabindex="-1" href="#修改远程-commit-记录"><span class="icon icon-link"></span></a>修改远程 Commit 记录</h3><div class="wrap-body">
|
||||
<!--rehype:wrap-class=row-span-4-->
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> rebase <span class="token parameter variable">-i</span> HEAD~3
|
||||
</span><span class="code-line line-number" line="2"><span class="token comment"># 表示要修改当前版本的倒数第三次状态</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token comment"># 将要更改的记录行首单词 pick 改为 edit</span>
|
||||
</span><span class="code-line line-number" line="4">pick 96dc3f9 提交 commit 描述内容 <span class="token number">1</span>
|
||||
</span><span class="code-line line-number" line="5">pick f1cce8a 提交 commit 描述内容 <span class="token number">2</span>
|
||||
</span><span class="code-line line-number" line="6">pick <span class="token number">6293516</span> 提交 commit 描述内容 <span class="token number">3</span>
|
||||
</span><span class="code-line line-number" line="7"><span class="token comment"># Rebase eeb03a4..6293516 onto eeb03a4 </span>
|
||||
</span><span class="code-line line-number" line="8"><span class="token comment"># (3 commands)</span>
|
||||
</span><span class="code-line line-number" line="9"><span class="token comment">#</span>
|
||||
</span><span class="code-line line-number" line="10"><span class="token comment"># Commands:</span>
|
||||
</span><span class="code-line line-number" line="11"><span class="token comment"># p, pick = 使用提交</span>
|
||||
</span><span class="code-line line-number" line="12"><span class="token comment"># r, reword = 使用提交,但编辑提交消息</span>
|
||||
</span><span class="code-line line-number" line="13"><span class="token comment"># e, edit = 使用提交,但停止修改</span>
|
||||
</span><span class="code-line line-number" line="14"><span class="token comment"># s, squash = 使用提交,但融合到先前的提交中</span>
|
||||
</span><span class="code-line line-number" line="15"><span class="token comment"># f, fixup = 像 squash,但丢弃此提交的日志消息</span>
|
||||
</span><span class="code-line line-number" line="16"><span class="token comment"># x, exec = 使用 shell 运行命令(该行的其余部分)</span>
|
||||
</span><span class="code-line line-number" line="17"><span class="token comment"># d, drop = 删除提交</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> rebase <span class="token parameter variable">-i</span> HEAD~3
|
||||
</span><span class="code-line"><span class="token comment"># 表示要修改当前版本的倒数第三次状态</span>
|
||||
</span><span class="code-line"><span class="token comment"># 将要更改的记录行首单词 pick 改为 edit</span>
|
||||
</span><span class="code-line">pick 96dc3f9 提交 commit 描述内容 <span class="token number">1</span>
|
||||
</span><span class="code-line">pick f1cce8a 提交 commit 描述内容 <span class="token number">2</span>
|
||||
</span><span class="code-line">pick <span class="token number">6293516</span> 提交 commit 描述内容 <span class="token number">3</span>
|
||||
</span><span class="code-line"><span class="token comment"># Rebase eeb03a4..6293516 onto eeb03a4 </span>
|
||||
</span><span class="code-line"><span class="token comment"># (3 commands)</span>
|
||||
</span><span class="code-line"><span class="token comment">#</span>
|
||||
</span><span class="code-line"><span class="token comment"># Commands:</span>
|
||||
</span><span class="code-line"><span class="token comment"># p, pick = 使用提交</span>
|
||||
</span><span class="code-line"><span class="token comment"># r, reword = 使用提交,但编辑提交消息</span>
|
||||
</span><span class="code-line"><span class="token comment"># e, edit = 使用提交,但停止修改</span>
|
||||
</span><span class="code-line"><span class="token comment"># s, squash = 使用提交,但融合到先前的提交中</span>
|
||||
</span><span class="code-line"><span class="token comment"># f, fixup = 像 squash,但丢弃此提交的日志消息</span>
|
||||
</span><span class="code-line"><span class="token comment"># x, exec = 使用 shell 运行命令(该行的其余部分)</span>
|
||||
</span><span class="code-line"><span class="token comment"># d, drop = 删除提交</span>
|
||||
</span></code></pre>
|
||||
<p>保存并退出,会弹出下面提示</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1"><span class="token comment"># 您现在可以修改提交,使用</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token comment"># </span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token comment"># git commit --amend</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token comment"># </span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token comment"># 对更改感到满意后,运行</span>
|
||||
</span><span class="code-line line-number" line="6"><span class="token comment"># </span>
|
||||
</span><span class="code-line line-number" line="7"><span class="token comment"># git rebase --continue</span>
|
||||
</span><span class="code-line line-number" line="8"><span class="token comment">#</span>
|
||||
</span><span class="code-line line-number" line="9"><span class="token comment"># 1. 通过这条命令进入编辑更改 commit,保存退出</span>
|
||||
</span><span class="code-line line-number" line="10">$ <span class="token function">git</span> commit <span class="token parameter variable">--amend</span>
|
||||
</span><span class="code-line line-number" line="11"><span class="token comment"># 2. 保存退出确认修改,继续执行下面命令, </span>
|
||||
</span><span class="code-line line-number" line="12">$ <span class="token function">git</span> rebase <span class="token parameter variable">--continue</span>
|
||||
</span><span class="code-line line-number" line="13"><span class="token comment"># 如果修改多条记录反复执行上面两条命令直到完成所有修改</span>
|
||||
</span><span class="code-line line-number" line="14">
|
||||
</span><span class="code-line line-number" line="15"><span class="token comment"># 最后,确保没有人提交进行推送,最好不要加 -f 强制推送</span>
|
||||
</span><span class="code-line line-number" line="16">$ <span class="token function">git</span> push <span class="token parameter variable">-f</span> origin master
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line"><span class="token comment"># 您现在可以修改提交,使用</span>
|
||||
</span><span class="code-line"><span class="token comment"># </span>
|
||||
</span><span class="code-line"><span class="token comment"># git commit --amend</span>
|
||||
</span><span class="code-line"><span class="token comment"># </span>
|
||||
</span><span class="code-line"><span class="token comment"># 对更改感到满意后,运行</span>
|
||||
</span><span class="code-line"><span class="token comment"># </span>
|
||||
</span><span class="code-line"><span class="token comment"># git rebase --continue</span>
|
||||
</span><span class="code-line"><span class="token comment">#</span>
|
||||
</span><span class="code-line"><span class="token comment"># 1. 通过这条命令进入编辑更改 commit,保存退出</span>
|
||||
</span><span class="code-line">$ <span class="token function">git</span> commit <span class="token parameter variable">--amend</span>
|
||||
</span><span class="code-line"><span class="token comment"># 2. 保存退出确认修改,继续执行下面命令, </span>
|
||||
</span><span class="code-line">$ <span class="token function">git</span> rebase <span class="token parameter variable">--continue</span>
|
||||
</span><span class="code-line"><span class="token comment"># 如果修改多条记录反复执行上面两条命令直到完成所有修改</span>
|
||||
</span><span class="code-line">
|
||||
</span><span class="code-line"><span class="token comment"># 最后,确保没有人提交进行推送,最好不要加 -f 强制推送</span>
|
||||
</span><span class="code-line">$ <span class="token function">git</span> push <span class="token parameter variable">-f</span> origin master
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1"><span class="token comment"># 撤销一条记录 </span>
|
||||
</span><span class="code-line line-number" line="2">$ <span class="token function">git</span> reset <span class="token parameter variable">--hard</span> HEAD~1
|
||||
</span><span class="code-line line-number" line="3"><span class="token comment"># 强制同步到远程仓库 </span>
|
||||
</span><span class="code-line line-number" line="4">$ <span class="token function">git</span> push <span class="token parameter variable">-f</span> origin HEAD:master
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line"><span class="token comment"># 撤销一条记录 </span>
|
||||
</span><span class="code-line">$ <span class="token function">git</span> reset <span class="token parameter variable">--hard</span> HEAD~1
|
||||
</span><span class="code-line"><span class="token comment"># 强制同步到远程仓库 </span>
|
||||
</span><span class="code-line">$ <span class="token function">git</span> push <span class="token parameter variable">-f</span> origin HEAD:master
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1"><span class="token comment"># 如果有的修改以及加入暂存区的话</span>
|
||||
</span><span class="code-line line-number" line="2">$ <span class="token function">git</span> reset <span class="token parameter variable">--hard</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token comment"># 还原所有修改,不会删除新增的文件</span>
|
||||
</span><span class="code-line line-number" line="4">$ <span class="token function">git</span> checkout <span class="token builtin class-name">.</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token comment"># 下面命令会删除新增的文件</span>
|
||||
</span><span class="code-line line-number" line="6">$ <span class="token function">git</span> clean <span class="token parameter variable">-xdf</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line"><span class="token comment"># 如果有的修改以及加入暂存区的话</span>
|
||||
</span><span class="code-line">$ <span class="token function">git</span> reset <span class="token parameter variable">--hard</span>
|
||||
</span><span class="code-line"><span class="token comment"># 还原所有修改,不会删除新增的文件</span>
|
||||
</span><span class="code-line">$ <span class="token function">git</span> checkout <span class="token builtin class-name">.</span>
|
||||
</span><span class="code-line"><span class="token comment"># 下面命令会删除新增的文件</span>
|
||||
</span><span class="code-line">$ <span class="token function">git</span> clean <span class="token parameter variable">-xdf</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="获取最近一次提交的-hash"><a aria-hidden="true" tabindex="-1" href="#获取最近一次提交的-hash"><span class="icon icon-link"></span></a>获取最近一次提交的 Hash</h3><div class="wrap-body">
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> rev-parse HEAD <span class="token comment"># e10721cb8859b2c</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token comment"># 获取短 hash</span>
|
||||
</span><span class="code-line line-number" line="3">$ <span class="token function">git</span> rev-parse <span class="token parameter variable">--short</span> HEAD <span class="token comment"># e10721c</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> rev-parse HEAD <span class="token comment"># e10721cb8859b2c</span>
|
||||
</span><span class="code-line"><span class="token comment"># 获取短 hash</span>
|
||||
</span><span class="code-line">$ <span class="token function">git</span> rev-parse <span class="token parameter variable">--short</span> HEAD <span class="token comment"># e10721c</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="删除已经合并到-master-的分支"><a aria-hidden="true" tabindex="-1" href="#删除已经合并到-master-的分支"><span class="icon icon-link"></span></a>删除已经合并到 master 的分支</h3><div class="wrap-body">
|
||||
<pre class="wrap-text"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> branch <span class="token parameter variable">--merged</span> master <span class="token operator">|</span> <span class="token function">grep</span> <span class="token parameter variable">-v</span> <span class="token string">'^\*\| master'</span> <span class="token operator">|</span> <span class="token function">xargs</span> <span class="token parameter variable">-n</span> <span class="token number">1</span> <span class="token function">git</span> branch <span class="token parameter variable">-d</span>
|
||||
<pre class="wrap-text"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> branch <span class="token parameter variable">--merged</span> master <span class="token operator">|</span> <span class="token function">grep</span> <span class="token parameter variable">-v</span> <span class="token string">'^\*\| master'</span> <span class="token operator">|</span> <span class="token function">xargs</span> <span class="token parameter variable">-n</span> <span class="token number">1</span> <span class="token function">git</span> branch <span class="token parameter variable">-d</span>
|
||||
</span></code></pre>
|
||||
<!--rehype:className=wrap-text-->
|
||||
</div></div></div><div class="wrap"><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-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">git</span> config <span class="token parameter variable">--global</span> core.quotepath <span class="token boolean">false</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">git</span> config <span class="token parameter variable">--global</span> core.quotepath <span class="token boolean">false</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="把-a-分支的某一个-commit放到-b-分支上"><a aria-hidden="true" tabindex="-1" href="#把-a-分支的某一个-commit放到-b-分支上"><span class="icon icon-link"></span></a>把 A 分支的某一个 commit,放到 B 分支上</h3><div class="wrap-body">
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1"><span class="token comment"># 切换到 B 分支</span>
|
||||
</span><span class="code-line line-number" line="2">$ <span class="token function">git</span> checkout <span class="token operator"><</span>B<span class="token operator">></span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token comment"># 将 A 分支 <hash-id> 的内容 pick 到 B 分支</span>
|
||||
</span><span class="code-line line-number" line="4">$ <span class="token function">git</span> cherry-pick <span class="token operator"><</span>hash-id<span class="token operator">></span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line"><span class="token comment"># 切换到 B 分支</span>
|
||||
</span><span class="code-line">$ <span class="token function">git</span> checkout <span class="token operator"><</span>B<span class="token operator">></span>
|
||||
</span><span class="code-line"><span class="token comment"># 将 A 分支 <hash-id> 的内容 pick 到 B 分支</span>
|
||||
</span><span class="code-line">$ <span class="token function">git</span> cherry-pick <span class="token operator"><</span>hash-id<span class="token operator">></span>
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div></div></div><footer class="footer-wrap"><footer class="max-container">© 2022 Kenny Wang, All rights reserved.</footer></footer></body>
|
||||
</html>
|
||||
|
1956
docs/javascript.html
1956
docs/javascript.html
File diff suppressed because it is too large
Load Diff
720
docs/jest.html
720
docs/jest.html
@ -48,142 +48,142 @@
|
||||
</ul>
|
||||
</div></div></div><div class="wrap col-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=col-span-2-->
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1"><span class="token function">describe</span><span class="token punctuation">(</span><span class="token string">'makePoniesPink'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token function">beforeAll</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token comment">/* 在所有测试之前运行 */</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="5"> <span class="token function">afterAll</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="6"> <span class="token comment">/* 在所有测试后运行 */</span>
|
||||
</span><span class="code-line line-number" line="7"> <span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="8"> <span class="token function">beforeEach</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="9"> <span class="token comment">/* 在每次测试之前运行 */</span>
|
||||
</span><span class="code-line line-number" line="10"> <span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="11"> <span class="token function">afterEach</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="12"> <span class="token comment">/* 每次测试后运行 */</span>
|
||||
</span><span class="code-line line-number" line="13"> <span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="14"> <span class="token function">test</span><span class="token punctuation">(</span><span class="token string">'make each pony pink'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="15"> <span class="token keyword">const</span> actual <span class="token operator">=</span> <span class="token function">fn</span><span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token string">'Alice'</span><span class="token punctuation">,</span> <span class="token string">'Bob'</span><span class="token punctuation">,</span> <span class="token string">'Eve'</span><span class="token punctuation">]</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="16"> <span class="token function">expect</span><span class="token punctuation">(</span>actual<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toEqual</span><span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token string">'Pink Alice'</span><span class="token punctuation">,</span> <span class="token string">'Pink Bob'</span><span class="token punctuation">,</span> <span class="token string">'Pink Eve'</span><span class="token punctuation">]</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="17"> <span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="18"><span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line"><span class="token function">describe</span><span class="token punctuation">(</span><span class="token string">'makePoniesPink'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token function">beforeAll</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token comment">/* 在所有测试之前运行 */</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> <span class="token function">afterAll</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token comment">/* 在所有测试后运行 */</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> <span class="token function">beforeEach</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token comment">/* 在每次测试之前运行 */</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> <span class="token function">afterEach</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token comment">/* 每次测试后运行 */</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> <span class="token function">test</span><span class="token punctuation">(</span><span class="token string">'make each pony pink'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token keyword">const</span> actual <span class="token operator">=</span> <span class="token function">fn</span><span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token string">'Alice'</span><span class="token punctuation">,</span> <span class="token string">'Bob'</span><span class="token punctuation">,</span> <span class="token string">'Eve'</span><span class="token punctuation">]</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> <span class="token function">expect</span><span class="token punctuation">(</span>actual<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toEqual</span><span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token string">'Pink Alice'</span><span class="token punctuation">,</span> <span class="token string">'Pink Bob'</span><span class="token punctuation">,</span> <span class="token string">'Pink Eve'</span><span class="token punctuation">]</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap"><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"><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-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token number">42</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toBe</span><span class="token punctuation">(</span><span class="token number">42</span><span class="token punctuation">)</span> <span class="token comment">// 严格相等 (===)</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token number">42</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token property-access">not</span><span class="token punctuation">.</span><span class="token method function property-access">toBe</span><span class="token punctuation">(</span><span class="token number">3</span><span class="token punctuation">)</span> <span class="token comment">// 严格相等 (!==)</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toEqual</span><span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token comment">// 深度相等</span>
|
||||
</span><span class="code-line line-number" line="4">
|
||||
</span><span class="code-line line-number" line="5"><span class="token comment">// 深度相等</span>
|
||||
</span><span class="code-line line-number" line="6"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token punctuation">{</span> <span class="token literal-property property">a</span><span class="token operator">:</span> <span class="token keyword nil">undefined</span><span class="token punctuation">,</span> <span class="token literal-property property">b</span><span class="token operator">:</span> <span class="token number">2</span> <span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="7"> <span class="token punctuation">.</span><span class="token method function property-access">toEqual</span><span class="token punctuation">(</span><span class="token punctuation">{</span> <span class="token literal-property property">b</span><span class="token operator">:</span> <span class="token number">2</span> <span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="8">
|
||||
</span><span class="code-line line-number" line="9"><span class="token comment">// 严格相等 (Jest 23+)</span>
|
||||
</span><span class="code-line line-number" line="10"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token punctuation">{</span> <span class="token literal-property property">a</span><span class="token operator">:</span> <span class="token keyword nil">undefined</span><span class="token punctuation">,</span> <span class="token literal-property property">b</span><span class="token operator">:</span> <span class="token number">2</span> <span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="11"> <span class="token punctuation">.</span><span class="token property-access">not</span><span class="token punctuation">.</span><span class="token method function property-access">toStrictEqual</span><span class="token punctuation">(</span><span class="token punctuation">{</span> <span class="token literal-property property">b</span><span class="token operator">:</span> <span class="token number">2</span> <span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token number">42</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toBe</span><span class="token punctuation">(</span><span class="token number">42</span><span class="token punctuation">)</span> <span class="token comment">// 严格相等 (===)</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token number">42</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token property-access">not</span><span class="token punctuation">.</span><span class="token method function property-access">toBe</span><span class="token punctuation">(</span><span class="token number">3</span><span class="token punctuation">)</span> <span class="token comment">// 严格相等 (!==)</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toEqual</span><span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token comment">// 深度相等</span>
|
||||
</span><span class="code-line">
|
||||
</span><span class="code-line"><span class="token comment">// 深度相等</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token punctuation">{</span> <span class="token literal-property property">a</span><span class="token operator">:</span> <span class="token keyword nil">undefined</span><span class="token punctuation">,</span> <span class="token literal-property property">b</span><span class="token operator">:</span> <span class="token number">2</span> <span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">.</span><span class="token method function property-access">toEqual</span><span class="token punctuation">(</span><span class="token punctuation">{</span> <span class="token literal-property property">b</span><span class="token operator">:</span> <span class="token number">2</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">// 严格相等 (Jest 23+)</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token punctuation">{</span> <span class="token literal-property property">a</span><span class="token operator">:</span> <span class="token keyword nil">undefined</span><span class="token punctuation">,</span> <span class="token literal-property property">b</span><span class="token operator">:</span> <span class="token number">2</span> <span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">.</span><span class="token property-access">not</span><span class="token punctuation">.</span><span class="token method function property-access">toStrictEqual</span><span class="token punctuation">(</span><span class="token punctuation">{</span> <span class="token literal-property property">b</span><span class="token operator">:</span> <span class="token number">2</span> <span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
</span></code></pre>
|
||||
<p><a href="http://jestjs.io/docs/en/using-matchers">Using matchers</a>, <a href="https://jestjs.io/docs/en/expect">matchers docs</a></p>
|
||||
</div></div></div><div class="wrap"><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-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1"><span class="token comment">// 匹配 if 语句视为 true 的任何内容</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token comment">// (not false、0、''、null、undefined、NaN)</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token string">'foo'</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toBeTruthy</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token comment">// 匹配 if 语句视为 false 的任何内容</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token comment">// (false、0、''、null、undefined、NaN)</span>
|
||||
</span><span class="code-line line-number" line="6"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token string">''</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toBeFalsy</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="7"><span class="token comment">// 仅匹配 null</span>
|
||||
</span><span class="code-line line-number" line="8"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token keyword null nil">null</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toBeNull</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="9"><span class="token comment">// 仅匹配未定义</span>
|
||||
</span><span class="code-line line-number" line="10"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token keyword nil">undefined</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toBeUndefined</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="11"><span class="token comment">// toBeUndefined 的反义词</span>
|
||||
</span><span class="code-line line-number" line="12"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token number">7</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toBeDefined</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="13"><span class="token comment">// 匹配真假</span>
|
||||
</span><span class="code-line line-number" line="14"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token boolean">true</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toEqual</span><span class="token punctuation">(</span>expect<span class="token punctuation">.</span><span class="token method function property-access">any</span><span class="token punctuation">(</span><span class="token known-class-name class-name">Boolean</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line"><span class="token comment">// 匹配 if 语句视为 true 的任何内容</span>
|
||||
</span><span class="code-line"><span class="token comment">// (not false、0、''、null、undefined、NaN)</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token string">'foo'</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toBeTruthy</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token comment">// 匹配 if 语句视为 false 的任何内容</span>
|
||||
</span><span class="code-line"><span class="token comment">// (false、0、''、null、undefined、NaN)</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token string">''</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toBeFalsy</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token comment">// 仅匹配 null</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token keyword null nil">null</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toBeNull</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token comment">// 仅匹配未定义</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token keyword nil">undefined</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toBeUndefined</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token comment">// toBeUndefined 的反义词</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token number">7</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toBeDefined</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token comment">// 匹配真假</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token boolean">true</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toEqual</span><span class="token punctuation">(</span>expect<span class="token punctuation">.</span><span class="token method function property-access">any</span><span class="token punctuation">(</span><span class="token known-class-name class-name">Boolean</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1"><span class="token comment">// 大于</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toBeGreaterThan</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token comment">// 大于或等于</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toBeGreaterThanOrEqual</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token comment">// 小于</span>
|
||||
</span><span class="code-line line-number" line="6"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toBeLessThan</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="7"><span class="token comment">// 小于或等于</span>
|
||||
</span><span class="code-line line-number" line="8"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toBeLessThanOrEqual</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="9"><span class="token comment">// 接近于</span>
|
||||
</span><span class="code-line line-number" line="10"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token number">0.2</span> <span class="token operator">+</span> <span class="token number">0.1</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toBeCloseTo</span><span class="token punctuation">(</span><span class="token number">0.3</span><span class="token punctuation">,</span> <span class="token number">5</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="11"><span class="token comment">// 原始值的传递类型</span>
|
||||
</span><span class="code-line line-number" line="12"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token number">NaN</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toEqual</span><span class="token punctuation">(</span>expect<span class="token punctuation">.</span><span class="token method function property-access">any</span><span class="token punctuation">(</span><span class="token known-class-name class-name">Number</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line"><span class="token comment">// 大于</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toBeGreaterThan</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token comment">// 大于或等于</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toBeGreaterThanOrEqual</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token comment">// 小于</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toBeLessThan</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token comment">// 小于或等于</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toBeLessThanOrEqual</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token comment">// 接近于</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token number">0.2</span> <span class="token operator">+</span> <span class="token number">0.1</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toBeCloseTo</span><span class="token punctuation">(</span><span class="token number">0.3</span><span class="token punctuation">,</span> <span class="token number">5</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token comment">// 原始值的传递类型</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token number">NaN</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toEqual</span><span class="token punctuation">(</span>expect<span class="token punctuation">.</span><span class="token method function property-access">any</span><span class="token punctuation">(</span><span class="token known-class-name class-name">Number</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1"><span class="token comment">// 检查字符串是否与正则表达式匹配。</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token string">'long string'</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toMatch</span><span class="token punctuation">(</span><span class="token string">'str'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token string">'string'</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toEqual</span><span class="token punctuation">(</span>expect<span class="token punctuation">.</span><span class="token method function property-access">any</span><span class="token punctuation">(</span><span class="token known-class-name class-name">String</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token string">'coffee'</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toMatch</span><span class="token punctuation">(</span><span class="token regex"><span class="token regex-delimiter">/</span><span class="token regex-source language-regex">ff</span><span class="token regex-delimiter">/</span></span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token string">'pizza'</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token property-access">not</span><span class="token punctuation">.</span><span class="token method function property-access">toMatch</span><span class="token punctuation">(</span><span class="token string">'coffee'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="6"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token string">'pizza'</span><span class="token punctuation">,</span> <span class="token string">'coffee'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toEqual</span><span class="token punctuation">(</span>
|
||||
</span><span class="code-line line-number" line="7"> <span class="token punctuation">[</span>
|
||||
</span><span class="code-line line-number" line="8"> expect<span class="token punctuation">.</span><span class="token method function property-access">stringContaining</span><span class="token punctuation">(</span><span class="token string">'zz'</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="9"> expect<span class="token punctuation">.</span><span class="token method function property-access">stringMatching</span><span class="token punctuation">(</span><span class="token regex"><span class="token regex-delimiter">/</span><span class="token regex-source language-regex">ff</span><span class="token regex-delimiter">/</span></span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="10"> <span class="token punctuation">]</span>
|
||||
</span><span class="code-line line-number" line="11"><span class="token punctuation">)</span>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line"><span class="token comment">// 检查字符串是否与正则表达式匹配。</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token string">'long string'</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toMatch</span><span class="token punctuation">(</span><span class="token string">'str'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token string">'string'</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toEqual</span><span class="token punctuation">(</span>expect<span class="token punctuation">.</span><span class="token method function property-access">any</span><span class="token punctuation">(</span><span class="token known-class-name class-name">String</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token string">'coffee'</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toMatch</span><span class="token punctuation">(</span><span class="token regex"><span class="token regex-delimiter">/</span><span class="token regex-source language-regex">ff</span><span class="token regex-delimiter">/</span></span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token string">'pizza'</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token property-access">not</span><span class="token punctuation">.</span><span class="token method function property-access">toMatch</span><span class="token punctuation">(</span><span class="token string">'coffee'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token string">'pizza'</span><span class="token punctuation">,</span> <span class="token string">'coffee'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toEqual</span><span class="token punctuation">(</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">[</span>
|
||||
</span><span class="code-line"> expect<span class="token punctuation">.</span><span class="token method function property-access">stringContaining</span><span class="token punctuation">(</span><span class="token string">'zz'</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> expect<span class="token punctuation">.</span><span class="token method function property-access">stringMatching</span><span class="token punctuation">(</span><span class="token regex"><span class="token regex-delimiter">/</span><span class="token regex-source language-regex">ff</span><span class="token regex-delimiter">/</span></span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">]</span>
|
||||
</span><span class="code-line"><span class="token punctuation">)</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toEqual</span><span class="token punctuation">(</span>expect<span class="token punctuation">.</span><span class="token method function property-access">any</span><span class="token punctuation">(</span><span class="token known-class-name class-name">Array</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token keyword">const</span> exampleArray <span class="token operator">=</span> <span class="token punctuation">[</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token string">'Alice'</span><span class="token punctuation">,</span> <span class="token string">'Bob'</span><span class="token punctuation">,</span> <span class="token string">'Eve'</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token punctuation">]</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token function">expect</span><span class="token punctuation">(</span>exampleArray<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toHaveLength</span><span class="token punctuation">(</span><span class="token number">3</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="6"><span class="token function">expect</span><span class="token punctuation">(</span>exampleArray<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toContain</span><span class="token punctuation">(</span><span class="token string">'Alice'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="7"><span class="token function">expect</span><span class="token punctuation">(</span>exampleArray<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toEqual</span><span class="token punctuation">(</span>
|
||||
</span><span class="code-line line-number" line="8"> expect<span class="token punctuation">.</span><span class="token method function property-access">arrayContaining</span><span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token string">'Alice'</span><span class="token punctuation">,</span> <span class="token string">'Bob'</span><span class="token punctuation">]</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="9"><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="10"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token punctuation">{</span> <span class="token literal-property property">a</span><span class="token operator">:</span> <span class="token number">1</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span> <span class="token literal-property property">a</span><span class="token operator">:</span> <span class="token number">2</span> <span class="token punctuation">}</span><span class="token punctuation">]</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="11"> <span class="token punctuation">.</span><span class="token method function property-access">toContainEqual</span><span class="token punctuation">(</span><span class="token punctuation">{</span> <span class="token literal-property property">a</span><span class="token operator">:</span> <span class="token number">1</span> <span class="token punctuation">}</span><span class="token punctuation">)</span> <span class="token comment">// 包含相等</span>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toEqual</span><span class="token punctuation">(</span>expect<span class="token punctuation">.</span><span class="token method function property-access">any</span><span class="token punctuation">(</span><span class="token known-class-name class-name">Array</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token keyword">const</span> exampleArray <span class="token operator">=</span> <span class="token punctuation">[</span>
|
||||
</span><span class="code-line"> <span class="token string">'Alice'</span><span class="token punctuation">,</span> <span class="token string">'Bob'</span><span class="token punctuation">,</span> <span class="token string">'Eve'</span>
|
||||
</span><span class="code-line"><span class="token punctuation">]</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span>exampleArray<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toHaveLength</span><span class="token punctuation">(</span><span class="token number">3</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span>exampleArray<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toContain</span><span class="token punctuation">(</span><span class="token string">'Alice'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span>exampleArray<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toEqual</span><span class="token punctuation">(</span>
|
||||
</span><span class="code-line"> expect<span class="token punctuation">.</span><span class="token method function property-access">arrayContaining</span><span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token string">'Alice'</span><span class="token punctuation">,</span> <span class="token string">'Bob'</span><span class="token punctuation">]</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token punctuation">{</span> <span class="token literal-property property">a</span><span class="token operator">:</span> <span class="token number">1</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span> <span class="token literal-property property">a</span><span class="token operator">:</span> <span class="token number">2</span> <span class="token punctuation">}</span><span class="token punctuation">]</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">.</span><span class="token method function property-access">toContainEqual</span><span class="token punctuation">(</span><span class="token punctuation">{</span> <span class="token literal-property property">a</span><span class="token operator">:</span> <span class="token number">1</span> <span class="token punctuation">}</span><span class="token punctuation">)</span> <span class="token comment">// 包含相等</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token punctuation">{</span> <span class="token literal-property property">a</span><span class="token operator">:</span><span class="token number">1</span> <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toHaveProperty</span><span class="token punctuation">(</span><span class="token string">'a'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token punctuation">{</span> <span class="token literal-property property">a</span><span class="token operator">:</span><span class="token number">1</span> <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toHaveProperty</span><span class="token punctuation">(</span><span class="token string">'a'</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token punctuation">{</span> <span class="token literal-property property">a</span><span class="token operator">:</span> <span class="token punctuation">{</span><span class="token literal-property property">b</span><span class="token operator">:</span><span class="token number">1</span><span class="token punctuation">}</span> <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toHaveProperty</span><span class="token punctuation">(</span><span class="token string">'a.b'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token punctuation">{</span> <span class="token literal-property property">a</span><span class="token operator">:</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token literal-property property">b</span><span class="token operator">:</span><span class="token number">2</span> <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toMatchObject</span><span class="token punctuation">(</span><span class="token punctuation">{</span><span class="token literal-property property">a</span><span class="token operator">:</span><span class="token number">1</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token punctuation">{</span> <span class="token literal-property property">a</span><span class="token operator">:</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token literal-property property">b</span><span class="token operator">:</span><span class="token number">2</span> <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toMatchObject</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="6"> <span class="token literal-property property">a</span><span class="token operator">:</span> expect<span class="token punctuation">.</span><span class="token method function property-access">any</span><span class="token punctuation">(</span><span class="token known-class-name class-name">Number</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="7"> <span class="token literal-property property">b</span><span class="token operator">:</span> expect<span class="token punctuation">.</span><span class="token method function property-access">any</span><span class="token punctuation">(</span><span class="token known-class-name class-name">Number</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="8"><span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="9"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token punctuation">{</span> <span class="token literal-property property">a</span><span class="token operator">:</span> <span class="token number">1</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span> <span class="token literal-property property">b</span><span class="token operator">:</span> <span class="token number">2</span> <span class="token punctuation">}</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toEqual</span><span class="token punctuation">(</span><span class="token punctuation">[</span>
|
||||
</span><span class="code-line line-number" line="10"> expect<span class="token punctuation">.</span><span class="token method function property-access">objectContaining</span><span class="token punctuation">(</span>
|
||||
</span><span class="code-line line-number" line="11"> <span class="token punctuation">{</span> <span class="token literal-property property">a</span><span class="token operator">:</span> expect<span class="token punctuation">.</span><span class="token method function property-access">any</span><span class="token punctuation">(</span><span class="token known-class-name class-name">Number</span><span class="token punctuation">)</span> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line line-number" line="12"> <span class="token punctuation">)</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="13"> expect<span class="token punctuation">.</span><span class="token method function property-access">anything</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="14"><span class="token punctuation">]</span><span class="token punctuation">)</span>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token punctuation">{</span> <span class="token literal-property property">a</span><span class="token operator">:</span><span class="token number">1</span> <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toHaveProperty</span><span class="token punctuation">(</span><span class="token string">'a'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token punctuation">{</span> <span class="token literal-property property">a</span><span class="token operator">:</span><span class="token number">1</span> <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toHaveProperty</span><span class="token punctuation">(</span><span class="token string">'a'</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token punctuation">{</span> <span class="token literal-property property">a</span><span class="token operator">:</span> <span class="token punctuation">{</span><span class="token literal-property property">b</span><span class="token operator">:</span><span class="token number">1</span><span class="token punctuation">}</span> <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toHaveProperty</span><span class="token punctuation">(</span><span class="token string">'a.b'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token punctuation">{</span> <span class="token literal-property property">a</span><span class="token operator">:</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token literal-property property">b</span><span class="token operator">:</span><span class="token number">2</span> <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toMatchObject</span><span class="token punctuation">(</span><span class="token punctuation">{</span><span class="token literal-property property">a</span><span class="token operator">:</span><span class="token number">1</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token punctuation">{</span> <span class="token literal-property property">a</span><span class="token operator">:</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token literal-property property">b</span><span class="token operator">:</span><span class="token number">2</span> <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toMatchObject</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token literal-property property">a</span><span class="token operator">:</span> expect<span class="token punctuation">.</span><span class="token method function property-access">any</span><span class="token punctuation">(</span><span class="token known-class-name class-name">Number</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token literal-property property">b</span><span class="token operator">:</span> expect<span class="token punctuation">.</span><span class="token method function property-access">any</span><span class="token punctuation">(</span><span class="token known-class-name class-name">Number</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token punctuation">{</span> <span class="token literal-property property">a</span><span class="token operator">:</span> <span class="token number">1</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span> <span class="token literal-property property">b</span><span class="token operator">:</span> <span class="token number">2</span> <span class="token punctuation">}</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toEqual</span><span class="token punctuation">(</span><span class="token punctuation">[</span>
|
||||
</span><span class="code-line"> expect<span class="token punctuation">.</span><span class="token method function property-access">objectContaining</span><span class="token punctuation">(</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">{</span> <span class="token literal-property property">a</span><span class="token operator">:</span> expect<span class="token punctuation">.</span><span class="token method function property-access">any</span><span class="token punctuation">(</span><span class="token known-class-name class-name">Number</span><span class="token punctuation">)</span> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">)</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> expect<span class="token punctuation">.</span><span class="token method function property-access">anything</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"><span class="token punctuation">]</span><span class="token punctuation">)</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap 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-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1"><span class="token comment">// const fn = jest.fn()</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token comment">// const fn = jest.fn().mockName('Unicorn') -- 命名为 mock, Jest 22+</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token comment">// 函数被调用</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token function">expect</span><span class="token punctuation">(</span>fn<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toBeCalled</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token comment">// 函数*未*调用</span>
|
||||
</span><span class="code-line line-number" line="6"><span class="token function">expect</span><span class="token punctuation">(</span>fn<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token property-access">not</span><span class="token punctuation">.</span><span class="token method function property-access">toBeCalled</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="7"><span class="token comment">// 函数只被调用一次</span>
|
||||
</span><span class="code-line line-number" line="8"><span class="token function">expect</span><span class="token punctuation">(</span>fn<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toHaveBeenCalledTimes</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="9"><span class="token comment">// 任何执行都带有这些参数</span>
|
||||
</span><span class="code-line line-number" line="10"><span class="token function">expect</span><span class="token punctuation">(</span>fn<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toBeCalledWith</span><span class="token punctuation">(</span>arg1<span class="token punctuation">,</span> arg2<span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="11"><span class="token comment">// 最后一个执行是用这些参数</span>
|
||||
</span><span class="code-line line-number" line="12"><span class="token function">expect</span><span class="token punctuation">(</span>fn<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toHaveBeenLastCalledWith</span><span class="token punctuation">(</span>arg1<span class="token punctuation">,</span> arg2<span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="13"><span class="token comment">// 第 N 个执行带有这些参数(Jest 23+)</span>
|
||||
</span><span class="code-line line-number" line="14"><span class="token function">expect</span><span class="token punctuation">(</span>fn<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toHaveBeenNthCalledWith</span><span class="token punctuation">(</span>callNumber<span class="token punctuation">,</span> args<span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="15"><span class="token comment">// 函数返回没有抛出错误(Jest 23+)</span>
|
||||
</span><span class="code-line line-number" line="16"><span class="token function">expect</span><span class="token punctuation">(</span>fn<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toHaveReturnedTimes</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="17"><span class="token comment">// 函数返回一个值(Jest 23+)</span>
|
||||
</span><span class="code-line line-number" line="18"><span class="token function">expect</span><span class="token punctuation">(</span>fn<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toHaveReturnedWith</span><span class="token punctuation">(</span>value<span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="19"><span class="token comment">// 最后一个函数调用返回一个值(Jest 23+)</span>
|
||||
</span><span class="code-line line-number" line="20"><span class="token function">expect</span><span class="token punctuation">(</span>fn<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toHaveLastReturnedWith</span><span class="token punctuation">(</span>value<span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="21"><span class="token comment">// 第 N 个函数调用返回一个值(Jest 23+)</span>
|
||||
</span><span class="code-line line-number" line="22"><span class="token function">expect</span><span class="token punctuation">(</span>fn<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toHaveNthReturnedWith</span><span class="token punctuation">(</span>value<span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="23"><span class="token function">expect</span><span class="token punctuation">(</span>fn<span class="token punctuation">.</span><span class="token property-access">mock</span><span class="token punctuation">.</span><span class="token property-access">calls</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toEqual</span><span class="token punctuation">(</span><span class="token punctuation">[</span>
|
||||
</span><span class="code-line line-number" line="24"> <span class="token punctuation">[</span><span class="token string">'first'</span><span class="token punctuation">,</span> <span class="token string">'call'</span><span class="token punctuation">,</span> <span class="token string">'args'</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="25"> <span class="token punctuation">[</span><span class="token string">'second'</span><span class="token punctuation">,</span> <span class="token string">'call'</span><span class="token punctuation">,</span> <span class="token string">'args'</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="26"><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token comment">// 多次调用</span>
|
||||
</span><span class="code-line line-number" line="27"><span class="token comment">// fn.mock.calls[0][0] — 第一次调用的第一个参数</span>
|
||||
</span><span class="code-line line-number" line="28"><span class="token function">expect</span><span class="token punctuation">(</span>fn<span class="token punctuation">.</span><span class="token property-access">mock</span><span class="token punctuation">.</span><span class="token property-access">calls</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toBe</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">)</span>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line"><span class="token comment">// const fn = jest.fn()</span>
|
||||
</span><span class="code-line"><span class="token comment">// const fn = jest.fn().mockName('Unicorn') -- 命名为 mock, Jest 22+</span>
|
||||
</span><span class="code-line"><span class="token comment">// 函数被调用</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span>fn<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toBeCalled</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token comment">// 函数*未*调用</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span>fn<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token property-access">not</span><span class="token punctuation">.</span><span class="token method function property-access">toBeCalled</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token comment">// 函数只被调用一次</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span>fn<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toHaveBeenCalledTimes</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token comment">// 任何执行都带有这些参数</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span>fn<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toBeCalledWith</span><span class="token punctuation">(</span>arg1<span class="token punctuation">,</span> arg2<span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token comment">// 最后一个执行是用这些参数</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span>fn<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toHaveBeenLastCalledWith</span><span class="token punctuation">(</span>arg1<span class="token punctuation">,</span> arg2<span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token comment">// 第 N 个执行带有这些参数(Jest 23+)</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span>fn<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toHaveBeenNthCalledWith</span><span class="token punctuation">(</span>callNumber<span class="token punctuation">,</span> args<span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token comment">// 函数返回没有抛出错误(Jest 23+)</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span>fn<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toHaveReturnedTimes</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token comment">// 函数返回一个值(Jest 23+)</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span>fn<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toHaveReturnedWith</span><span class="token punctuation">(</span>value<span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token comment">// 最后一个函数调用返回一个值(Jest 23+)</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span>fn<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toHaveLastReturnedWith</span><span class="token punctuation">(</span>value<span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token comment">// 第 N 个函数调用返回一个值(Jest 23+)</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span>fn<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toHaveNthReturnedWith</span><span class="token punctuation">(</span>value<span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span>fn<span class="token punctuation">.</span><span class="token property-access">mock</span><span class="token punctuation">.</span><span class="token property-access">calls</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toEqual</span><span class="token punctuation">(</span><span class="token punctuation">[</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">[</span><span class="token string">'first'</span><span class="token punctuation">,</span> <span class="token string">'call'</span><span class="token punctuation">,</span> <span class="token string">'args'</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">[</span><span class="token string">'second'</span><span class="token punctuation">,</span> <span class="token string">'call'</span><span class="token punctuation">,</span> <span class="token string">'args'</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token comment">// 多次调用</span>
|
||||
</span><span class="code-line"><span class="token comment">// fn.mock.calls[0][0] — 第一次调用的第一个参数</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span>fn<span class="token punctuation">.</span><span class="token property-access">mock</span><span class="token punctuation">.</span><span class="token property-access">calls</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toBe</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">)</span>
|
||||
</span></code></pre>
|
||||
</div></div><div class="h3wrap-body"><div class="wrap"><div class="wrap-header h4wrap"><h4 id="别名"><a aria-hidden="true" tabindex="-1" href="#别名"><span class="icon icon-link"></span></a>别名</h4><div class="wrap-body">
|
||||
<ul>
|
||||
@ -197,78 +197,78 @@
|
||||
<li><code>nthReturnedWith</code> → <code>toHaveNthReturnedWith</code></li>
|
||||
</ul>
|
||||
</div></div></div></div></div><div class="wrap"><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-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1"><span class="token comment">// 检查对象是否是类的实例。</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">A</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toBeInstanceOf</span><span class="token punctuation">(</span><span class="token constant">A</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="3">
|
||||
</span><span class="code-line line-number" line="4"><span class="token comment">// 检查对象是否是函数的实例。</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toEqual</span><span class="token punctuation">(</span>
|
||||
</span><span class="code-line line-number" line="6"> expect<span class="token punctuation">.</span><span class="token method function property-access">any</span><span class="token punctuation">(</span><span class="token known-class-name class-name">Function</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="7"><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="8">
|
||||
</span><span class="code-line line-number" line="9"><span class="token comment">// 匹配除 null 或 undefined 之外的任何内容</span>
|
||||
</span><span class="code-line line-number" line="10"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token string">'pizza'</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toEqual</span><span class="token punctuation">(</span>expect<span class="token punctuation">.</span><span class="token method function property-access">anything</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line"><span class="token comment">// 检查对象是否是类的实例。</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">A</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toBeInstanceOf</span><span class="token punctuation">(</span><span class="token constant">A</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 function">expect</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toEqual</span><span class="token punctuation">(</span>
|
||||
</span><span class="code-line"> expect<span class="token punctuation">.</span><span class="token method function property-access">any</span><span class="token punctuation">(</span><span class="token known-class-name class-name">Function</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token punctuation">)</span>
|
||||
</span><span class="code-line">
|
||||
</span><span class="code-line"><span class="token comment">// 匹配除 null 或 undefined 之外的任何内容</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token string">'pizza'</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toEqual</span><span class="token punctuation">(</span>expect<span class="token punctuation">.</span><span class="token method function property-access">anything</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"><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-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1"><span class="token comment">// 这可确保某个值与最近的快照匹配。</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token function">expect</span><span class="token punctuation">(</span>node<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toMatchSnapshot</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="3">
|
||||
</span><span class="code-line line-number" line="4"><span class="token comment">// Jest 23+</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token function">expect</span><span class="token punctuation">(</span>user<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toMatchSnapshot</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="6"> <span class="token literal-property property">date</span><span class="token operator">:</span> expect<span class="token punctuation">.</span><span class="token method function property-access">any</span><span class="token punctuation">(</span><span class="token known-class-name class-name">Date</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="7"><span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="8">
|
||||
</span><span class="code-line line-number" line="9"><span class="token comment">// 确保值与最近的快照匹配。</span>
|
||||
</span><span class="code-line line-number" line="10"><span class="token function">expect</span><span class="token punctuation">(</span>user<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toMatchInlineSnapshot</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line"><span class="token comment">// 这可确保某个值与最近的快照匹配。</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span>node<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toMatchSnapshot</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">// Jest 23+</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span>user<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toMatchSnapshot</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token literal-property property">date</span><span class="token operator">:</span> expect<span class="token punctuation">.</span><span class="token method function property-access">any</span><span class="token punctuation">(</span><span class="token known-class-name class-name">Date</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"><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 function">expect</span><span class="token punctuation">(</span>user<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toMatchInlineSnapshot</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="promise-匹配器jest-20"><a aria-hidden="true" tabindex="-1" href="#promise-匹配器jest-20"><span class="icon icon-link"></span></a>Promise 匹配器(Jest 20+)</h3><div class="wrap-body">
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1"><span class="token function">test</span><span class="token punctuation">(</span><span class="token string">'resolve to lemon'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token comment">// 验证在测试期间是否调用了一定数量的断言。</span>
|
||||
</span><span class="code-line line-number" line="3"> expect<span class="token punctuation">.</span><span class="token method function property-access">assertions</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token comment">// 确保添加return语句</span>
|
||||
</span><span class="code-line line-number" line="5"> <span class="token keyword control-flow">return</span> <span class="token function">expect</span><span class="token punctuation">(</span><span class="token known-class-name class-name">Promise</span><span class="token punctuation">.</span><span class="token method function property-access">resolve</span><span class="token punctuation">(</span><span class="token string">'lemon'</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="6"> <span class="token punctuation">.</span><span class="token property-access">resolves</span><span class="token punctuation">.</span><span class="token method function property-access">toBe</span><span class="token punctuation">(</span><span class="token string">'lemon'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="7">
|
||||
</span><span class="code-line line-number" line="8"> <span class="token keyword control-flow">return</span> <span class="token function">expect</span><span class="token punctuation">(</span><span class="token known-class-name class-name">Promise</span><span class="token punctuation">.</span><span class="token method function property-access">reject</span><span class="token punctuation">(</span><span class="token string">'octopus'</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="9"> <span class="token punctuation">.</span><span class="token property-access">rejects</span><span class="token punctuation">.</span><span class="token method function property-access">toBeDefined</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="10">
|
||||
</span><span class="code-line line-number" line="11"> <span class="token keyword control-flow">return</span> <span class="token function">expect</span><span class="token punctuation">(</span><span class="token known-class-name class-name">Promise</span><span class="token punctuation">.</span><span class="token method function property-access">reject</span><span class="token punctuation">(</span>
|
||||
</span><span class="code-line line-number" line="12"> <span class="token known-class-name class-name">Error</span><span class="token punctuation">(</span><span class="token string">'pizza'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="13"> <span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token property-access">rejects</span><span class="token punctuation">.</span><span class="token method function property-access">toThrow</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="14"><span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line"><span class="token function">test</span><span class="token punctuation">(</span><span class="token string">'resolve to lemon'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token comment">// 验证在测试期间是否调用了一定数量的断言。</span>
|
||||
</span><span class="code-line"> expect<span class="token punctuation">.</span><span class="token method function property-access">assertions</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> <span class="token comment">// 确保添加return语句</span>
|
||||
</span><span class="code-line"> <span class="token keyword control-flow">return</span> <span class="token function">expect</span><span class="token punctuation">(</span><span class="token known-class-name class-name">Promise</span><span class="token punctuation">.</span><span class="token method function property-access">resolve</span><span class="token punctuation">(</span><span class="token string">'lemon'</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">.</span><span class="token property-access">resolves</span><span class="token punctuation">.</span><span class="token method function property-access">toBe</span><span class="token punctuation">(</span><span class="token string">'lemon'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line">
|
||||
</span><span class="code-line"> <span class="token keyword control-flow">return</span> <span class="token function">expect</span><span class="token punctuation">(</span><span class="token known-class-name class-name">Promise</span><span class="token punctuation">.</span><span class="token method function property-access">reject</span><span class="token punctuation">(</span><span class="token string">'octopus'</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">.</span><span class="token property-access">rejects</span><span class="token punctuation">.</span><span class="token method function property-access">toBeDefined</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line">
|
||||
</span><span class="code-line"> <span class="token keyword control-flow">return</span> <span class="token function">expect</span><span class="token punctuation">(</span><span class="token known-class-name class-name">Promise</span><span class="token punctuation">.</span><span class="token method function property-access">reject</span><span class="token punctuation">(</span>
|
||||
</span><span class="code-line"> <span class="token known-class-name class-name">Error</span><span class="token punctuation">(</span><span class="token string">'pizza'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token property-access">rejects</span><span class="token punctuation">.</span><span class="token method function property-access">toThrow</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
</span></code></pre>
|
||||
<p>或者使用 async/await:</p>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1"><span class="token function">test</span><span class="token punctuation">(</span><span class="token string">'resolve to lemon'</span><span class="token punctuation">,</span> <span class="token keyword">async</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> expect<span class="token punctuation">.</span><span class="token method function property-access">assertions</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token keyword control-flow">await</span> <span class="token function">expect</span><span class="token punctuation">(</span><span class="token known-class-name class-name">Promise</span><span class="token punctuation">.</span><span class="token method function property-access">resolve</span><span class="token punctuation">(</span><span class="token string">'lemon'</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token punctuation">.</span><span class="token property-access">resolves</span><span class="token punctuation">.</span><span class="token method function property-access">toBe</span><span class="token punctuation">(</span><span class="token string">'lemon'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="5">
|
||||
</span><span class="code-line line-number" line="6"> <span class="token keyword control-flow">await</span> <span class="token function">expect</span><span class="token punctuation">(</span><span class="token known-class-name class-name">Promise</span><span class="token punctuation">.</span><span class="token method function property-access">resolve</span><span class="token punctuation">(</span><span class="token string">'lemon'</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="7"> <span class="token punctuation">.</span><span class="token property-access">resolves</span><span class="token punctuation">.</span><span class="token property-access">not</span><span class="token punctuation">.</span><span class="token method function property-access">toBe</span><span class="token punctuation">(</span><span class="token string">'octopus'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="8"><span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line"><span class="token function">test</span><span class="token punctuation">(</span><span class="token string">'resolve to lemon'</span><span class="token punctuation">,</span> <span class="token keyword">async</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> expect<span class="token punctuation">.</span><span class="token method function property-access">assertions</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> <span class="token keyword control-flow">await</span> <span class="token function">expect</span><span class="token punctuation">(</span><span class="token known-class-name class-name">Promise</span><span class="token punctuation">.</span><span class="token method function property-access">resolve</span><span class="token punctuation">(</span><span class="token string">'lemon'</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">.</span><span class="token property-access">resolves</span><span class="token punctuation">.</span><span class="token method function property-access">toBe</span><span class="token punctuation">(</span><span class="token string">'lemon'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line">
|
||||
</span><span class="code-line"> <span class="token keyword control-flow">await</span> <span class="token function">expect</span><span class="token punctuation">(</span><span class="token known-class-name class-name">Promise</span><span class="token punctuation">.</span><span class="token method function property-access">resolve</span><span class="token punctuation">(</span><span class="token string">'lemon'</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">.</span><span class="token property-access">resolves</span><span class="token punctuation">.</span><span class="token property-access">not</span><span class="token punctuation">.</span><span class="token method function property-access">toBe</span><span class="token punctuation">(</span><span class="token string">'octopus'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
</span></code></pre>
|
||||
<p><a href="https://jestjs.io/docs/en/expect#resolves">resolves 文档</a></p>
|
||||
</div></div></div><div class="wrap"><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-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1"><span class="token comment">// const fn = () => {</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token comment">// throw new Error('Out of cheese!')</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token comment">// }</span>
|
||||
</span><span class="code-line line-number" line="4">
|
||||
</span><span class="code-line line-number" line="5"><span class="token function">expect</span><span class="token punctuation">(</span>fn<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toThrow</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="6"><span class="token function">expect</span><span class="token punctuation">(</span>fn<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toThrow</span><span class="token punctuation">(</span><span class="token string">'Out of cheese'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="7">
|
||||
</span><span class="code-line line-number" line="8"><span class="token comment">// 测试错误消息在某处说“cheese”:这些是等价的</span>
|
||||
</span><span class="code-line line-number" line="9"><span class="token function">expect</span><span class="token punctuation">(</span>fn<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toThrowError</span><span class="token punctuation">(</span><span class="token regex"><span class="token regex-delimiter">/</span><span class="token regex-source language-regex">cheese</span><span class="token regex-delimiter">/</span></span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="10"><span class="token function">expect</span><span class="token punctuation">(</span>fn<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toThrowError</span><span class="token punctuation">(</span><span class="token string">'cheese'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="11">
|
||||
</span><span class="code-line line-number" line="12"><span class="token comment">// 测试准确的错误信息</span>
|
||||
</span><span class="code-line line-number" line="13"><span class="token function">expect</span><span class="token punctuation">(</span>fn<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toThrowError</span><span class="token punctuation">(</span>
|
||||
</span><span class="code-line line-number" line="14"> <span class="token regex"><span class="token regex-delimiter">/</span><span class="token regex-source language-regex"><span class="token anchor function">^</span>Out of cheese!<span class="token anchor function">$</span></span><span class="token regex-delimiter">/</span></span>
|
||||
</span><span class="code-line line-number" line="15"><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="16"><span class="token function">expect</span><span class="token punctuation">(</span>fn<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toThrowError</span><span class="token punctuation">(</span>
|
||||
</span><span class="code-line line-number" line="17"> <span class="token keyword">new</span> <span class="token class-name">Error</span><span class="token punctuation">(</span><span class="token string">'Out of cheese!'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="18"><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="19">
|
||||
</span><span class="code-line line-number" line="20"><span class="token comment">// 测试函数在调用时是否抛出与最新快照匹配的错误。</span>
|
||||
</span><span class="code-line line-number" line="21"><span class="token function">expect</span><span class="token punctuation">(</span>fn<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toThrowErrorMatchingSnapshot</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line"><span class="token comment">// const fn = () => {</span>
|
||||
</span><span class="code-line"><span class="token comment">// throw new Error('Out of cheese!')</span>
|
||||
</span><span class="code-line"><span class="token comment">// }</span>
|
||||
</span><span class="code-line">
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span>fn<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toThrow</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span>fn<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toThrow</span><span class="token punctuation">(</span><span class="token string">'Out of cheese'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line">
|
||||
</span><span class="code-line"><span class="token comment">// 测试错误消息在某处说“cheese”:这些是等价的</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span>fn<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toThrowError</span><span class="token punctuation">(</span><span class="token regex"><span class="token regex-delimiter">/</span><span class="token regex-source language-regex">cheese</span><span class="token regex-delimiter">/</span></span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span>fn<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toThrowError</span><span class="token punctuation">(</span><span class="token string">'cheese'</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 class="token function">expect</span><span class="token punctuation">(</span>fn<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toThrowError</span><span class="token punctuation">(</span>
|
||||
</span><span class="code-line"> <span class="token regex"><span class="token regex-delimiter">/</span><span class="token regex-source language-regex"><span class="token anchor function">^</span>Out of cheese!<span class="token anchor function">$</span></span><span class="token regex-delimiter">/</span></span>
|
||||
</span><span class="code-line"><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span>fn<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toThrowError</span><span class="token punctuation">(</span>
|
||||
</span><span class="code-line"> <span class="token keyword">new</span> <span class="token class-name">Error</span><span class="token punctuation">(</span><span class="token string">'Out of cheese!'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><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 function">expect</span><span class="token punctuation">(</span>fn<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toThrowErrorMatchingSnapshot</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span></code></pre>
|
||||
</div></div><div class="h3wrap-body"><div class="wrap"><div class="wrap-header h4wrap"><h4 id="别名-1"><a aria-hidden="true" tabindex="-1" href="#别名-1"><span class="icon icon-link"></span></a>别名</h4><div class="wrap-body">
|
||||
<ul>
|
||||
@ -279,113 +279,113 @@
|
||||
<!--rehype:wrap-class=row-span-2-->
|
||||
<p>请参阅 Jest 文档中的 <a href="https://jestjs.io/docs/en/tutorial-async">更多示例</a>。</p>
|
||||
<p>在异步测试中指定一些预期的断言是一个很好的做法,所以如果你的断言根本没有被调用,测试将会失败。</p>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1"><span class="token function">test</span><span class="token punctuation">(</span><span class="token string">'async test'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token comment">// 在测试期间恰好调用了三个断言</span>
|
||||
</span><span class="code-line line-number" line="3"> expect<span class="token punctuation">.</span><span class="token method function property-access">assertions</span><span class="token punctuation">(</span><span class="token number">3</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token comment">// 或者 - 在测试期间至少调用一个断言</span>
|
||||
</span><span class="code-line line-number" line="5"> expect<span class="token punctuation">.</span><span class="token method function property-access">hasAssertions</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="6"> <span class="token comment">// 你的异步测试</span>
|
||||
</span><span class="code-line line-number" line="7"><span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line"><span class="token function">test</span><span class="token punctuation">(</span><span class="token string">'async test'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token comment">// 在测试期间恰好调用了三个断言</span>
|
||||
</span><span class="code-line"> expect<span class="token punctuation">.</span><span class="token method function property-access">assertions</span><span class="token punctuation">(</span><span class="token number">3</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> <span class="token comment">// 或者 - 在测试期间至少调用一个断言</span>
|
||||
</span><span class="code-line"> expect<span class="token punctuation">.</span><span class="token method function property-access">hasAssertions</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> <span class="token comment">// 你的异步测试</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
</span></code></pre>
|
||||
<p>请注意,您也可以在任何 <code>describe</code> 和 <code>test</code> 之外对每个文件执行此操作:</p>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1"><span class="token function">beforeEach</span><span class="token punctuation">(</span>expect<span class="token punctuation">.</span><span class="token property-access">hasAssertions</span><span class="token punctuation">)</span>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line"><span class="token function">beforeEach</span><span class="token punctuation">(</span>expect<span class="token punctuation">.</span><span class="token property-access">hasAssertions</span><span class="token punctuation">)</span>
|
||||
</span></code></pre>
|
||||
<p>这将验证每个测试用例至少存在一个断言。 它还可以与更具体的 <code>expect.assertions(3)</code> 声明配合使用。</p>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="asyncawait"><a aria-hidden="true" tabindex="-1" href="#asyncawait"><span class="icon icon-link"></span></a>async/await</h3><div class="wrap-body">
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1"><span class="token function">test</span><span class="token punctuation">(</span><span class="token string">'async test'</span><span class="token punctuation">,</span> <span class="token keyword">async</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> expect<span class="token punctuation">.</span><span class="token method function property-access">assertions</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="3">
|
||||
</span><span class="code-line line-number" line="4"> <span class="token keyword">const</span> result <span class="token operator">=</span> <span class="token keyword control-flow">await</span> <span class="token function">runAsyncOperation</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="5"> <span class="token function">expect</span><span class="token punctuation">(</span>result<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toBe</span><span class="token punctuation">(</span><span class="token boolean">true</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="6"><span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line"><span class="token function">test</span><span class="token punctuation">(</span><span class="token string">'async test'</span><span class="token punctuation">,</span> <span class="token keyword">async</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> expect<span class="token punctuation">.</span><span class="token method function property-access">assertions</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line">
|
||||
</span><span class="code-line"> <span class="token keyword">const</span> result <span class="token operator">=</span> <span class="token keyword control-flow">await</span> <span class="token function">runAsyncOperation</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> <span class="token function">expect</span><span class="token punctuation">(</span>result<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toBe</span><span class="token punctuation">(</span><span class="token boolean">true</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap row-span-2"><div class="wrap-header h3wrap"><h3 id="done-回调"><a aria-hidden="true" tabindex="-1" href="#done-回调"><span class="icon icon-link"></span></a>done() 回调</h3><div class="wrap-body">
|
||||
<!--rehype:wrap-class=row-span-2-->
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1"><span class="token function">test</span><span class="token punctuation">(</span><span class="token string">'async test'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">done</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> expect<span class="token punctuation">.</span><span class="token method function property-access">assertions</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="3">
|
||||
</span><span class="code-line line-number" line="4"> <span class="token function">runAsyncOperation</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="5">
|
||||
</span><span class="code-line line-number" line="6"> <span class="token function">setTimeout</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="7"> <span class="token keyword control-flow">try</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="8"> <span class="token keyword">const</span> result <span class="token operator">=</span> <span class="token function">getAsyncOperationResult</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="9"> <span class="token function">expect</span><span class="token punctuation">(</span>result<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toBe</span><span class="token punctuation">(</span><span class="token boolean">true</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="10"> <span class="token function">done</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="11"> <span class="token punctuation">}</span> <span class="token keyword control-flow">catch</span> <span class="token punctuation">(</span>err<span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="12"> done<span class="token punctuation">.</span><span class="token method function property-access">fail</span><span class="token punctuation">(</span>err<span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="13"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line line-number" line="14"> <span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="15"><span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line"><span class="token function">test</span><span class="token punctuation">(</span><span class="token string">'async test'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">done</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> expect<span class="token punctuation">.</span><span class="token method function property-access">assertions</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line">
|
||||
</span><span class="code-line"> <span class="token function">runAsyncOperation</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line">
|
||||
</span><span class="code-line"> <span class="token function">setTimeout</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token keyword control-flow">try</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token keyword">const</span> result <span class="token operator">=</span> <span class="token function">getAsyncOperationResult</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> <span class="token function">expect</span><span class="token punctuation">(</span>result<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toBe</span><span class="token punctuation">(</span><span class="token boolean">true</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> <span class="token function">done</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">}</span> <span class="token keyword control-flow">catch</span> <span class="token punctuation">(</span>err<span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> done<span class="token punctuation">.</span><span class="token method function property-access">fail</span><span class="token punctuation">(</span>err<span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
</span></code></pre>
|
||||
<p>将断言包装在 <code>try/catch</code> 块中,否则 <code>Jest</code> 将忽略失败</p>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="promises"><a aria-hidden="true" tabindex="-1" href="#promises"><span class="icon icon-link"></span></a>Promises</h3><div class="wrap-body">
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1"><span class="token function">test</span><span class="token punctuation">(</span><span class="token string">'async test'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> expect<span class="token punctuation">.</span><span class="token method function property-access">assertions</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="3">
|
||||
</span><span class="code-line line-number" line="4"> <span class="token keyword control-flow">return</span> <span class="token function">runAsyncOperation</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">then</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token parameter">result</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="5"> <span class="token function">expect</span><span class="token punctuation">(</span>result<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toBe</span><span class="token punctuation">(</span><span class="token boolean">true</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="6"> <span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="7"><span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line"><span class="token function">test</span><span class="token punctuation">(</span><span class="token string">'async test'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> expect<span class="token punctuation">.</span><span class="token method function property-access">assertions</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line">
|
||||
</span><span class="code-line"> <span class="token keyword control-flow">return</span> <span class="token function">runAsyncOperation</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">then</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token parameter">result</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token function">expect</span><span class="token punctuation">(</span>result<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toBe</span><span class="token punctuation">(</span><span class="token boolean">true</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
</span></code></pre>
|
||||
<p>从你的测试中 <em>返回</em> 一个 <code>Promise</code></p>
|
||||
</div></div></div></div></div><div class="wrap"><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 row-span-2"><div class="wrap-header h3wrap"><h3 id="模拟函数-1"><a aria-hidden="true" tabindex="-1" href="#模拟函数-1"><span class="icon icon-link"></span></a>模拟函数</h3><div class="wrap-body">
|
||||
<!--rehype:wrap-class=row-span-2-->
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1"><span class="token function">test</span><span class="token punctuation">(</span><span class="token string">'call the callback'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token keyword">const</span> callback <span class="token operator">=</span> jest<span class="token punctuation">.</span><span class="token method function property-access">fn</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token function">fn</span><span class="token punctuation">(</span>callback<span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token function">expect</span><span class="token punctuation">(</span>callback<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toBeCalled</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="5"> <span class="token function">expect</span><span class="token punctuation">(</span>callback<span class="token punctuation">.</span><span class="token property-access">mock</span><span class="token punctuation">.</span><span class="token property-access">calls</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">.</span><span class="token property-access">baz</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toBe</span><span class="token punctuation">(</span><span class="token string">'pizza'</span><span class="token punctuation">)</span> <span class="token comment">// 第一次调用的第二个参数</span>
|
||||
</span><span class="code-line line-number" line="6"> <span class="token comment">// 匹配第一个和最后一个参数,但忽略第二个参数</span>
|
||||
</span><span class="code-line line-number" line="7"> <span class="token function">expect</span><span class="token punctuation">(</span>callback<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toHaveBeenLastCalledWith</span><span class="token punctuation">(</span><span class="token string">'meal'</span><span class="token punctuation">,</span> expect<span class="token punctuation">.</span><span class="token method function property-access">anything</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token string">'margarita'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="8"><span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line"><span class="token function">test</span><span class="token punctuation">(</span><span class="token string">'call the callback'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token keyword">const</span> callback <span class="token operator">=</span> jest<span class="token punctuation">.</span><span class="token method function property-access">fn</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> <span class="token function">fn</span><span class="token punctuation">(</span>callback<span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> <span class="token function">expect</span><span class="token punctuation">(</span>callback<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toBeCalled</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> <span class="token function">expect</span><span class="token punctuation">(</span>callback<span class="token punctuation">.</span><span class="token property-access">mock</span><span class="token punctuation">.</span><span class="token property-access">calls</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">.</span><span class="token property-access">baz</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toBe</span><span class="token punctuation">(</span><span class="token string">'pizza'</span><span class="token punctuation">)</span> <span class="token comment">// 第一次调用的第二个参数</span>
|
||||
</span><span class="code-line"> <span class="token comment">// 匹配第一个和最后一个参数,但忽略第二个参数</span>
|
||||
</span><span class="code-line"> <span class="token function">expect</span><span class="token punctuation">(</span>callback<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toHaveBeenLastCalledWith</span><span class="token punctuation">(</span><span class="token string">'meal'</span><span class="token punctuation">,</span> expect<span class="token punctuation">.</span><span class="token method function property-access">anything</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token string">'margarita'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
</span></code></pre>
|
||||
<p>您还可以使用快照:</p>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1"><span class="token function">test</span><span class="token punctuation">(</span><span class="token string">'call the callback'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token comment">// mockName 在 Jest 22+ 中可用</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token keyword">const</span> callback <span class="token operator">=</span> jest<span class="token punctuation">.</span><span class="token method function property-access">fn</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">mockName</span><span class="token punctuation">(</span><span class="token string">'Unicorn'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token function">fn</span><span class="token punctuation">(</span>callback<span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="5"> <span class="token function">expect</span><span class="token punctuation">(</span>callback<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toMatchSnapshot</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="6"> <span class="token comment">// -></span>
|
||||
</span><span class="code-line line-number" line="7"> <span class="token comment">// [MockFunction Unicorn] {</span>
|
||||
</span><span class="code-line line-number" line="8"> <span class="token comment">// "calls": Array [</span>
|
||||
</span><span class="code-line line-number" line="9"> <span class="token comment">// ...</span>
|
||||
</span><span class="code-line line-number" line="10"><span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line"><span class="token function">test</span><span class="token punctuation">(</span><span class="token string">'call the callback'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token comment">// mockName 在 Jest 22+ 中可用</span>
|
||||
</span><span class="code-line"> <span class="token keyword">const</span> callback <span class="token operator">=</span> jest<span class="token punctuation">.</span><span class="token method function property-access">fn</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">mockName</span><span class="token punctuation">(</span><span class="token string">'Unicorn'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> <span class="token function">fn</span><span class="token punctuation">(</span>callback<span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> <span class="token function">expect</span><span class="token punctuation">(</span>callback<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toMatchSnapshot</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> <span class="token comment">// -></span>
|
||||
</span><span class="code-line"> <span class="token comment">// [MockFunction Unicorn] {</span>
|
||||
</span><span class="code-line"> <span class="token comment">// "calls": Array [</span>
|
||||
</span><span class="code-line"> <span class="token comment">// ...</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
</span></code></pre>
|
||||
<p>并将实现传递给 <code>jest.fn</code> 函数:</p>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1"><span class="token keyword">const</span> callback <span class="token operator">=</span> jest<span class="token punctuation">.</span><span class="token method function property-access">fn</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token boolean">true</span><span class="token punctuation">)</span>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line"><span class="token keyword">const</span> callback <span class="token operator">=</span> jest<span class="token punctuation">.</span><span class="token method function property-access">fn</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token boolean">true</span><span class="token punctuation">)</span>
|
||||
</span></code></pre>
|
||||
<p><a href="https://jestjs.io/docs/en/mock-function-api">模拟函数文档</a></p>
|
||||
</div></div></div><div class="wrap 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-->
|
||||
<p>您的模拟可以返回值:</p>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1"><span class="token keyword">const</span> callback
|
||||
</span><span class="code-line line-number" line="2"> <span class="token operator">=</span> jest<span class="token punctuation">.</span><span class="token method function property-access">fn</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">mockReturnValue</span><span class="token punctuation">(</span><span class="token boolean">true</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token keyword">const</span> callbackOnce
|
||||
</span><span class="code-line line-number" line="4"> <span class="token operator">=</span> jest<span class="token punctuation">.</span><span class="token method function property-access">fn</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">mockReturnValueOnce</span><span class="token punctuation">(</span><span class="token boolean">true</span><span class="token punctuation">)</span>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line"><span class="token keyword">const</span> callback
|
||||
</span><span class="code-line"> <span class="token operator">=</span> jest<span class="token punctuation">.</span><span class="token method function property-access">fn</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">mockReturnValue</span><span class="token punctuation">(</span><span class="token boolean">true</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token keyword">const</span> callbackOnce
|
||||
</span><span class="code-line"> <span class="token operator">=</span> jest<span class="token punctuation">.</span><span class="token method function property-access">fn</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">mockReturnValueOnce</span><span class="token punctuation">(</span><span class="token boolean">true</span><span class="token punctuation">)</span>
|
||||
</span></code></pre>
|
||||
<p>或解析值:</p>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1"><span class="token keyword">const</span> promise
|
||||
</span><span class="code-line line-number" line="2"> <span class="token operator">=</span> jest<span class="token punctuation">.</span><span class="token method function property-access">fn</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">mockResolvedValue</span><span class="token punctuation">(</span><span class="token boolean">true</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token keyword">const</span> promiseOnce
|
||||
</span><span class="code-line line-number" line="4"> <span class="token operator">=</span> jest<span class="token punctuation">.</span><span class="token method function property-access">fn</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">mockResolvedValueOnce</span><span class="token punctuation">(</span><span class="token boolean">true</span><span class="token punctuation">)</span>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line"><span class="token keyword">const</span> promise
|
||||
</span><span class="code-line"> <span class="token operator">=</span> jest<span class="token punctuation">.</span><span class="token method function property-access">fn</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">mockResolvedValue</span><span class="token punctuation">(</span><span class="token boolean">true</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token keyword">const</span> promiseOnce
|
||||
</span><span class="code-line"> <span class="token operator">=</span> jest<span class="token punctuation">.</span><span class="token method function property-access">fn</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">mockResolvedValueOnce</span><span class="token punctuation">(</span><span class="token boolean">true</span><span class="token punctuation">)</span>
|
||||
</span></code></pre>
|
||||
<p>他们甚至可以拒绝值:</p>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1"><span class="token keyword">const</span> failedPromise
|
||||
</span><span class="code-line line-number" line="2"> <span class="token operator">=</span> jest<span class="token punctuation">.</span><span class="token method function property-access">fn</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">mockRejectedValue</span><span class="token punctuation">(</span><span class="token string">'Error'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token keyword">const</span> failedPromiseOnce
|
||||
</span><span class="code-line line-number" line="4"> <span class="token operator">=</span> jest<span class="token punctuation">.</span><span class="token method function property-access">fn</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">mockRejectedValueOnce</span><span class="token punctuation">(</span><span class="token string">'Error'</span><span class="token punctuation">)</span>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line"><span class="token keyword">const</span> failedPromise
|
||||
</span><span class="code-line"> <span class="token operator">=</span> jest<span class="token punctuation">.</span><span class="token method function property-access">fn</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">mockRejectedValue</span><span class="token punctuation">(</span><span class="token string">'Error'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token keyword">const</span> failedPromiseOnce
|
||||
</span><span class="code-line"> <span class="token operator">=</span> jest<span class="token punctuation">.</span><span class="token method function property-access">fn</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">mockRejectedValueOnce</span><span class="token punctuation">(</span><span class="token string">'Error'</span><span class="token punctuation">)</span>
|
||||
</span></code></pre>
|
||||
<p>你甚至可以结合这些:</p>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1"><span class="token keyword">const</span> callback
|
||||
</span><span class="code-line line-number" line="2"> <span class="token operator">=</span> jest<span class="token punctuation">.</span><span class="token method function property-access">fn</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">mockReturnValueOnce</span><span class="token punctuation">(</span><span class="token boolean">false</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">mockReturnValue</span><span class="token punctuation">(</span><span class="token boolean">true</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token comment">// -></span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token comment">// call 1: false</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token comment">// call 2+: true</span>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line"><span class="token keyword">const</span> callback
|
||||
</span><span class="code-line"> <span class="token operator">=</span> jest<span class="token punctuation">.</span><span class="token method function property-access">fn</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">mockReturnValueOnce</span><span class="token punctuation">(</span><span class="token boolean">false</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">mockReturnValue</span><span class="token punctuation">(</span><span class="token boolean">true</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token comment">// -></span>
|
||||
</span><span class="code-line"><span class="token comment">// call 1: false</span>
|
||||
</span><span class="code-line"><span class="token comment">// call 2+: true</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="使用-jestmock-方法模拟模块"><a aria-hidden="true" tabindex="-1" href="#使用-jestmock-方法模拟模块"><span class="icon icon-link"></span></a>使用 <code>jest.mock</code> 方法模拟模块</h3><div class="wrap-body">
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1">jest<span class="token punctuation">.</span><span class="token method function property-access">mock</span><span class="token punctuation">(</span><span class="token string">'lodash/memoize'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">(</span><span class="token parameter">a</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> a<span class="token punctuation">)</span> <span class="token comment">// The original lodash/memoize should exist</span>
|
||||
</span><span class="code-line line-number" line="2">jest<span class="token punctuation">.</span><span class="token method function property-access">mock</span><span class="token punctuation">(</span><span class="token string">'lodash/memoize'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">(</span><span class="token parameter">a</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> a<span class="token punctuation">,</span> <span class="token punctuation">{</span> <span class="token literal-property property">virtual</span><span class="token operator">:</span> <span class="token boolean">true</span> <span class="token punctuation">}</span><span class="token punctuation">)</span> <span class="token comment">// The original lodash/memoize isn’t required</span>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line">jest<span class="token punctuation">.</span><span class="token method function property-access">mock</span><span class="token punctuation">(</span><span class="token string">'lodash/memoize'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">(</span><span class="token parameter">a</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> a<span class="token punctuation">)</span> <span class="token comment">// The original lodash/memoize should exist</span>
|
||||
</span><span class="code-line">jest<span class="token punctuation">.</span><span class="token method function property-access">mock</span><span class="token punctuation">(</span><span class="token string">'lodash/memoize'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">(</span><span class="token parameter">a</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> a<span class="token punctuation">,</span> <span class="token punctuation">{</span> <span class="token literal-property property">virtual</span><span class="token operator">:</span> <span class="token boolean">true</span> <span class="token punctuation">}</span><span class="token punctuation">)</span> <span class="token comment">// The original lodash/memoize isn’t required</span>
|
||||
</span></code></pre>
|
||||
<p><a href="https://jestjs.io/docs/en/jest-object#jestmockmodulename-factory-options">jest.mock docs</a></p>
|
||||
<blockquote>
|
||||
@ -393,157 +393,157 @@
|
||||
</blockquote>
|
||||
</div></div></div><div class="wrap"><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">
|
||||
<p>创建一个类似 <code>__mocks__/lodash/memoize.js</code> 的文件:</p>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1">module<span class="token punctuation">.</span><span class="token method-variable function-variable method function property-access">exports</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token parameter">a</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> a
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line">module<span class="token punctuation">.</span><span class="token method-variable function-variable method function property-access">exports</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token parameter">a</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> a
|
||||
</span></code></pre>
|
||||
<p>添加到您的测试中:</p>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1">jest<span class="token punctuation">.</span><span class="token method function property-access">mock</span><span class="token punctuation">(</span><span class="token string">'lodash/memoize'</span><span class="token punctuation">)</span>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line">jest<span class="token punctuation">.</span><span class="token method function property-access">mock</span><span class="token punctuation">(</span><span class="token string">'lodash/memoize'</span><span class="token punctuation">)</span>
|
||||
</span></code></pre>
|
||||
<p>注意:当使用 <code>babel-jest</code> 时,对 <code>jest.mock</code> 的调用将自动提升到代码块的顶部。 如果您想明确避免这种行为,请使用 <code>jest.doMock</code>。</p>
|
||||
<p><a href="https://jestjs.io/docs/en/manual-mocks">手动模拟文档</a></p>
|
||||
</div></div></div><div class="wrap"><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-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1"><span class="token keyword">const</span> spy <span class="token operator">=</span> jest<span class="token punctuation">.</span><span class="token method function property-access">spyOn</span><span class="token punctuation">(</span>console<span class="token punctuation">,</span> <span class="token string">'log'</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">mockImplementation</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token console class-name">console</span><span class="token punctuation">.</span><span class="token property-access">log</span><span class="token punctuation">.</span><span class="token property-access">mock</span><span class="token punctuation">.</span><span class="token property-access">calls</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toEqual</span><span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token punctuation">[</span><span class="token string">'dope'</span><span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token punctuation">[</span><span class="token string">'nope'</span><span class="token punctuation">]</span><span class="token punctuation">]</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="3">spy<span class="token punctuation">.</span><span class="token method function property-access">mockRestore</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line"><span class="token keyword">const</span> spy <span class="token operator">=</span> jest<span class="token punctuation">.</span><span class="token method function property-access">spyOn</span><span class="token punctuation">(</span>console<span class="token punctuation">,</span> <span class="token string">'log'</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">mockImplementation</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span><span class="token console class-name">console</span><span class="token punctuation">.</span><span class="token property-access">log</span><span class="token punctuation">.</span><span class="token property-access">mock</span><span class="token punctuation">.</span><span class="token property-access">calls</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toEqual</span><span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token punctuation">[</span><span class="token string">'dope'</span><span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token punctuation">[</span><span class="token string">'nope'</span><span class="token punctuation">]</span><span class="token punctuation">]</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line">spy<span class="token punctuation">.</span><span class="token method function property-access">mockRestore</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span></code></pre>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1"><span class="token keyword">const</span> spy <span class="token operator">=</span> jest<span class="token punctuation">.</span><span class="token method function property-access">spyOn</span><span class="token punctuation">(</span>ajax<span class="token punctuation">,</span> <span class="token string">'request'</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">mockImplementation</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token known-class-name class-name">Promise</span><span class="token punctuation">.</span><span class="token method function property-access">resolve</span><span class="token punctuation">(</span><span class="token punctuation">{</span> <span class="token literal-property property">success</span><span class="token operator">:</span> <span class="token boolean">true</span> <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token function">expect</span><span class="token punctuation">(</span>spy<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toHaveBeenCalled</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="3">spy<span class="token punctuation">.</span><span class="token method function property-access">mockRestore</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line"><span class="token keyword">const</span> spy <span class="token operator">=</span> jest<span class="token punctuation">.</span><span class="token method function property-access">spyOn</span><span class="token punctuation">(</span>ajax<span class="token punctuation">,</span> <span class="token string">'request'</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">mockImplementation</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token known-class-name class-name">Promise</span><span class="token punctuation">.</span><span class="token method function property-access">resolve</span><span class="token punctuation">(</span><span class="token punctuation">{</span> <span class="token literal-property property">success</span><span class="token operator">:</span> <span class="token boolean">true</span> <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token function">expect</span><span class="token punctuation">(</span>spy<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toHaveBeenCalled</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line">spy<span class="token punctuation">.</span><span class="token method function property-access">mockRestore</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="模拟-getter-和-setter-jest-2210"><a aria-hidden="true" tabindex="-1" href="#模拟-getter-和-setter-jest-2210"><span class="icon icon-link"></span></a>模拟 getter 和 setter (Jest 22.1.0+)</h3><div class="wrap-body">
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1"><span class="token keyword">const</span> <span class="token dom variable">location</span> <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token punctuation">}</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token keyword">const</span> getTitle <span class="token operator">=</span> jest
|
||||
</span><span class="code-line line-number" line="3"> <span class="token punctuation">.</span><span class="token method function property-access">spyOn</span><span class="token punctuation">(</span><span class="token dom variable">location</span><span class="token punctuation">,</span> <span class="token string">'title'</span><span class="token punctuation">,</span> <span class="token string">'get'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token punctuation">.</span><span class="token method function property-access">mockImplementation</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token string">'pizza'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token keyword">const</span> setTitle <span class="token operator">=</span> jest
|
||||
</span><span class="code-line line-number" line="6"> <span class="token punctuation">.</span><span class="token method function property-access">spyOn</span><span class="token punctuation">(</span><span class="token dom variable">location</span><span class="token punctuation">,</span> <span class="token string">'title'</span><span class="token punctuation">,</span> <span class="token string">'set'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="7"> <span class="token punctuation">.</span><span class="token method function property-access">mockImplementation</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line"><span class="token keyword">const</span> <span class="token dom variable">location</span> <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token punctuation">}</span>
|
||||
</span><span class="code-line"><span class="token keyword">const</span> getTitle <span class="token operator">=</span> jest
|
||||
</span><span class="code-line"> <span class="token punctuation">.</span><span class="token method function property-access">spyOn</span><span class="token punctuation">(</span><span class="token dom variable">location</span><span class="token punctuation">,</span> <span class="token string">'title'</span><span class="token punctuation">,</span> <span class="token string">'get'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">.</span><span class="token method function property-access">mockImplementation</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token string">'pizza'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token keyword">const</span> setTitle <span class="token operator">=</span> jest
|
||||
</span><span class="code-line"> <span class="token punctuation">.</span><span class="token method function property-access">spyOn</span><span class="token punctuation">(</span><span class="token dom variable">location</span><span class="token punctuation">,</span> <span class="token string">'title'</span><span class="token punctuation">,</span> <span class="token string">'set'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">.</span><span class="token method function property-access">mockImplementation</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></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 row-span-3"><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-3-->
|
||||
<p>为使用本机计时器函数(<code>setTimeout</code>、<code>setInterval</code>、<code>clearTimeout</code>、<code>clearInterval</code>)的代码编写同步测试。</p>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1"><span class="token comment">// 启用假计时器</span>
|
||||
</span><span class="code-line line-number" line="2">jest<span class="token punctuation">.</span><span class="token method function property-access">useFakeTimers</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token function">test</span><span class="token punctuation">(</span><span class="token string">'kill the time'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token keyword">const</span> callback <span class="token operator">=</span> jest<span class="token punctuation">.</span><span class="token method function property-access">fn</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="5"> <span class="token comment">// 运行一些使用 setTimeout 或 setInterval 的代码</span>
|
||||
</span><span class="code-line line-number" line="6"> <span class="token keyword">const</span> actual <span class="token operator">=</span> <span class="token function">someFunctionThatUseTimers</span><span class="token punctuation">(</span>callback<span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="7"> <span class="token comment">// 快进直到所有定时器都执行完毕</span>
|
||||
</span><span class="code-line line-number" line="8"> jest<span class="token punctuation">.</span><span class="token method function property-access">runAllTimers</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="9"> <span class="token comment">// 同步检查结果</span>
|
||||
</span><span class="code-line line-number" line="10"> <span class="token function">expect</span><span class="token punctuation">(</span>callback<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toHaveBeenCalledTimes</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="11"><span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line"><span class="token comment">// 启用假计时器</span>
|
||||
</span><span class="code-line">jest<span class="token punctuation">.</span><span class="token method function property-access">useFakeTimers</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token function">test</span><span class="token punctuation">(</span><span class="token string">'kill the time'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token keyword">const</span> callback <span class="token operator">=</span> jest<span class="token punctuation">.</span><span class="token method function property-access">fn</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> <span class="token comment">// 运行一些使用 setTimeout 或 setInterval 的代码</span>
|
||||
</span><span class="code-line"> <span class="token keyword">const</span> actual <span class="token operator">=</span> <span class="token function">someFunctionThatUseTimers</span><span class="token punctuation">(</span>callback<span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> <span class="token comment">// 快进直到所有定时器都执行完毕</span>
|
||||
</span><span class="code-line"> jest<span class="token punctuation">.</span><span class="token method function property-access">runAllTimers</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> <span class="token comment">// 同步检查结果</span>
|
||||
</span><span class="code-line"> <span class="token function">expect</span><span class="token punctuation">(</span>callback<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toHaveBeenCalledTimes</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
</span></code></pre>
|
||||
<p>或者使用 <a href="https://jestjs.io/docs/en/timer-mocks#advance-timers-by-time">advanceTimersByTime()</a> 按时间调整计时器:</p>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1"><span class="token comment">// 启用假计时器</span>
|
||||
</span><span class="code-line line-number" line="2">jest<span class="token punctuation">.</span><span class="token method function property-access">useFakeTimers</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token function">test</span><span class="token punctuation">(</span><span class="token string">'kill the time'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token keyword">const</span> callback <span class="token operator">=</span> jest<span class="token punctuation">.</span><span class="token method function property-access">fn</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="5"> <span class="token comment">// 运行一些使用 setTimeout 或 setInterval 的代码</span>
|
||||
</span><span class="code-line line-number" line="6"> <span class="token keyword">const</span> actual <span class="token operator">=</span> <span class="token function">someFunctionThatUseTimers</span><span class="token punctuation">(</span>callback<span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="7"> <span class="token comment">// 快进 250 毫秒</span>
|
||||
</span><span class="code-line line-number" line="8"> jest<span class="token punctuation">.</span><span class="token method function property-access">advanceTimersByTime</span><span class="token punctuation">(</span><span class="token number">250</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="9"> <span class="token comment">// 同步检查结果</span>
|
||||
</span><span class="code-line line-number" line="10"> <span class="token function">expect</span><span class="token punctuation">(</span>callback<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toHaveBeenCalledTimes</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="11"><span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line"><span class="token comment">// 启用假计时器</span>
|
||||
</span><span class="code-line">jest<span class="token punctuation">.</span><span class="token method function property-access">useFakeTimers</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token function">test</span><span class="token punctuation">(</span><span class="token string">'kill the time'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token keyword">const</span> callback <span class="token operator">=</span> jest<span class="token punctuation">.</span><span class="token method function property-access">fn</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> <span class="token comment">// 运行一些使用 setTimeout 或 setInterval 的代码</span>
|
||||
</span><span class="code-line"> <span class="token keyword">const</span> actual <span class="token operator">=</span> <span class="token function">someFunctionThatUseTimers</span><span class="token punctuation">(</span>callback<span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> <span class="token comment">// 快进 250 毫秒</span>
|
||||
</span><span class="code-line"> jest<span class="token punctuation">.</span><span class="token method function property-access">advanceTimersByTime</span><span class="token punctuation">(</span><span class="token number">250</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> <span class="token comment">// 同步检查结果</span>
|
||||
</span><span class="code-line"> <span class="token function">expect</span><span class="token punctuation">(</span>callback<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toHaveBeenCalledTimes</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
</span></code></pre>
|
||||
<p>对于特殊情况,请使用 <a href="https://jestjs.io/docs/en/timer-mocks#run-pending-timers">jest.runOnlyPendingTimers()</a>。</p>
|
||||
<p><strong>注意:</strong> 您应该在测试用例中调用 <code>jest.useFakeTimers()</code> 以使用其他假计时器方法。</p>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="模拟-getters-和-setters"><a aria-hidden="true" tabindex="-1" href="#模拟-getters-和-setters"><span class="icon icon-link"></span></a>模拟 getters 和 setters</h3><div class="wrap-body">
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1"><span class="token keyword">const</span> getTitle <span class="token operator">=</span> jest<span class="token punctuation">.</span><span class="token method function property-access">fn</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token string">'pizza'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token keyword">const</span> setTitle <span class="token operator">=</span> jest<span class="token punctuation">.</span><span class="token method function property-access">fn</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token keyword">const</span> <span class="token dom variable">location</span> <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token punctuation">}</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token known-class-name class-name">Object</span><span class="token punctuation">.</span><span class="token method function property-access">defineProperty</span><span class="token punctuation">(</span><span class="token dom variable">location</span><span class="token punctuation">,</span> <span class="token string">'title'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="5"> <span class="token literal-property property">get</span><span class="token operator">:</span> getTitle<span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="6"> <span class="token literal-property property">set</span><span class="token operator">:</span> setTitle<span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="7"><span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line"><span class="token keyword">const</span> getTitle <span class="token operator">=</span> jest<span class="token punctuation">.</span><span class="token method function property-access">fn</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token string">'pizza'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token keyword">const</span> setTitle <span class="token operator">=</span> jest<span class="token punctuation">.</span><span class="token method function property-access">fn</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token keyword">const</span> <span class="token dom variable">location</span> <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token punctuation">}</span>
|
||||
</span><span class="code-line"><span class="token known-class-name class-name">Object</span><span class="token punctuation">.</span><span class="token method function property-access">defineProperty</span><span class="token punctuation">(</span><span class="token dom variable">location</span><span class="token punctuation">,</span> <span class="token string">'title'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token literal-property property">get</span><span class="token operator">:</span> getTitle<span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token literal-property property">set</span><span class="token operator">:</span> setTitle<span class="token punctuation">,</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap 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-->
|
||||
<p>对于一个模拟</p>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1"><span class="token comment">// 清除模拟使用日期</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token comment">// (fn.mock.calls、fn.mock.instances)</span>
|
||||
</span><span class="code-line line-number" line="3">fn<span class="token punctuation">.</span><span class="token method function property-access">mockClear</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token comment">// 清除并删除任何模拟的返回值或实现</span>
|
||||
</span><span class="code-line line-number" line="5">fn<span class="token punctuation">.</span><span class="token method function property-access">mockReset</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="6"><span class="token comment">// 重置并恢复初始实现</span>
|
||||
</span><span class="code-line line-number" line="7">fn<span class="token punctuation">.</span><span class="token method function property-access">mockRestore</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line"><span class="token comment">// 清除模拟使用日期</span>
|
||||
</span><span class="code-line"><span class="token comment">// (fn.mock.calls、fn.mock.instances)</span>
|
||||
</span><span class="code-line">fn<span class="token punctuation">.</span><span class="token method function property-access">mockClear</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token comment">// 清除并删除任何模拟的返回值或实现</span>
|
||||
</span><span class="code-line">fn<span class="token punctuation">.</span><span class="token method function property-access">mockReset</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token comment">// 重置并恢复初始实现</span>
|
||||
</span><span class="code-line">fn<span class="token punctuation">.</span><span class="token method function property-access">mockRestore</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span></code></pre>
|
||||
<blockquote>
|
||||
<p>注意:<code>mockRestore</code> 仅适用于由<code>jest.spyOn</code> 创建的模拟。对于所有模拟:</p>
|
||||
</blockquote>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1"><span class="token comment">// 清除所有 mock 的 </span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token comment">// mock.calls、mock.instances、</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token comment">// mock.contexts 和 mock.results 属性。</span>
|
||||
</span><span class="code-line line-number" line="4">jest<span class="token punctuation">.</span><span class="token method function property-access">clearAllMocks</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token comment">// 重置所有模拟的状态。</span>
|
||||
</span><span class="code-line line-number" line="6">jest<span class="token punctuation">.</span><span class="token method function property-access">resetAllMocks</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="7"><span class="token comment">// 将所有模拟恢复到其原始值。</span>
|
||||
</span><span class="code-line line-number" line="8">jest<span class="token punctuation">.</span><span class="token method function property-access">restoreAllMocks</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line"><span class="token comment">// 清除所有 mock 的 </span>
|
||||
</span><span class="code-line"><span class="token comment">// mock.calls、mock.instances、</span>
|
||||
</span><span class="code-line"><span class="token comment">// mock.contexts 和 mock.results 属性。</span>
|
||||
</span><span class="code-line">jest<span class="token punctuation">.</span><span class="token method function property-access">clearAllMocks</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token comment">// 重置所有模拟的状态。</span>
|
||||
</span><span class="code-line">jest<span class="token punctuation">.</span><span class="token method function property-access">resetAllMocks</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token comment">// 将所有模拟恢复到其原始值。</span>
|
||||
</span><span class="code-line">jest<span class="token punctuation">.</span><span class="token method function property-access">restoreAllMocks</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1">jest<span class="token punctuation">.</span><span class="token method function property-access">mock</span><span class="token punctuation">(</span><span class="token string">'fs'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token comment">// 模拟模块</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token keyword">const</span> fs <span class="token operator">=</span> <span class="token function">require</span><span class="token punctuation">(</span><span class="token string">'fs'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token comment">// 原始模块</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token keyword">const</span> fs <span class="token operator">=</span> require<span class="token punctuation">.</span><span class="token method function property-access">requireActual</span><span class="token punctuation">(</span><span class="token string">'fs'</span><span class="token punctuation">)</span>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line">jest<span class="token punctuation">.</span><span class="token method function property-access">mock</span><span class="token punctuation">(</span><span class="token string">'fs'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token comment">// 模拟模块</span>
|
||||
</span><span class="code-line"><span class="token keyword">const</span> fs <span class="token operator">=</span> <span class="token function">require</span><span class="token punctuation">(</span><span class="token string">'fs'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token comment">// 原始模块</span>
|
||||
</span><span class="code-line"><span class="token keyword">const</span> fs <span class="token operator">=</span> require<span class="token punctuation">.</span><span class="token method function property-access">requireActual</span><span class="token punctuation">(</span><span class="token string">'fs'</span><span class="token punctuation">)</span>
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap"><div class="wrap-header h2wrap"><h2 id="数据驱动测试jest-23"><a aria-hidden="true" tabindex="-1" href="#数据驱动测试jest-23"><span class="icon icon-link"></span></a>数据驱动测试(Jest 23+)</h2><div class="wrap-body">
|
||||
</div></div><div class="h2wrap-body"><div class="wrap"><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-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1">test<span class="token punctuation">.</span><span class="token method function property-access">each</span><span class="token punctuation">(</span><span class="token punctuation">[</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">(</span><span class="token string">'.add(%s, %s)'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">a<span class="token punctuation">,</span> b<span class="token punctuation">,</span> expected</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="6"> <span class="token function">expect</span><span class="token punctuation">(</span>a <span class="token operator">+</span> b<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toBe</span><span class="token punctuation">(</span>expected<span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="7"><span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line">test<span class="token punctuation">.</span><span class="token method function property-access">each</span><span class="token punctuation">(</span><span class="token punctuation">[</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">(</span><span class="token string">'.add(%s, %s)'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">a<span class="token punctuation">,</span> b<span class="token punctuation">,</span> expected</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token function">expect</span><span class="token punctuation">(</span>a <span class="token operator">+</span> b<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toBe</span><span class="token punctuation">(</span>expected<span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1">test<span class="token punctuation">.</span><span class="token property-access">each</span><span class="token template-string"><span class="token template-punctuation string">`</span><span class="token string">
|
||||
</span></span></span><span class="code-line line-number" line="2"><span class="token template-string"><span class="token string"> a | b | expected
|
||||
</span></span></span><span class="code-line line-number" line="3"><span class="token template-string"><span class="token string"> </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span><span class="token number">1</span><span class="token interpolation-punctuation punctuation">}</span></span><span class="token string"> | </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span><span class="token number">1</span><span class="token interpolation-punctuation punctuation">}</span></span><span class="token string"> | </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span><span class="token number">2</span><span class="token interpolation-punctuation punctuation">}</span></span><span class="token string">
|
||||
</span></span></span><span class="code-line line-number" line="4"><span class="token template-string"><span class="token string"> </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span><span class="token number">1</span><span class="token interpolation-punctuation punctuation">}</span></span><span class="token string"> | </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span><span class="token number">2</span><span class="token interpolation-punctuation punctuation">}</span></span><span class="token string"> | </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span><span class="token number">3</span><span class="token interpolation-punctuation punctuation">}</span></span><span class="token string">
|
||||
</span></span></span><span class="code-line line-number" line="5"><span class="token template-string"><span class="token string"> </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span><span class="token number">2</span><span class="token interpolation-punctuation punctuation">}</span></span><span class="token string"> | </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span><span class="token number">1</span><span class="token interpolation-punctuation punctuation">}</span></span><span class="token string"> | </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span><span class="token number">3</span><span class="token interpolation-punctuation punctuation">}</span></span><span class="token string">
|
||||
</span></span></span><span class="code-line line-number" line="6"><span class="token template-string"><span class="token string"></span><span class="token template-punctuation string">`</span></span><span class="token punctuation">(</span><span class="token string">'returns $expected when $a is added $b'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter"><span class="token punctuation">{</span> a<span class="token punctuation">,</span> b<span class="token punctuation">,</span> expected <span class="token punctuation">}</span></span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="7"> <span class="token function">expect</span><span class="token punctuation">(</span>a <span class="token operator">+</span> b<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toBe</span><span class="token punctuation">(</span>expected<span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="8"><span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line">test<span class="token punctuation">.</span><span class="token property-access">each</span><span class="token template-string"><span class="token template-punctuation string">`</span><span class="token string">
|
||||
</span></span></span><span class="code-line"><span class="token template-string"><span class="token string"> a | b | expected
|
||||
</span></span></span><span class="code-line"><span class="token template-string"><span class="token string"> </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span><span class="token number">1</span><span class="token interpolation-punctuation punctuation">}</span></span><span class="token string"> | </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span><span class="token number">1</span><span class="token interpolation-punctuation punctuation">}</span></span><span class="token string"> | </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span><span class="token number">2</span><span class="token interpolation-punctuation punctuation">}</span></span><span class="token string">
|
||||
</span></span></span><span class="code-line"><span class="token template-string"><span class="token string"> </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span><span class="token number">1</span><span class="token interpolation-punctuation punctuation">}</span></span><span class="token string"> | </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span><span class="token number">2</span><span class="token interpolation-punctuation punctuation">}</span></span><span class="token string"> | </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span><span class="token number">3</span><span class="token interpolation-punctuation punctuation">}</span></span><span class="token string">
|
||||
</span></span></span><span class="code-line"><span class="token template-string"><span class="token string"> </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span><span class="token number">2</span><span class="token interpolation-punctuation punctuation">}</span></span><span class="token string"> | </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span><span class="token number">1</span><span class="token interpolation-punctuation punctuation">}</span></span><span class="token string"> | </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span><span class="token number">3</span><span class="token interpolation-punctuation punctuation">}</span></span><span class="token string">
|
||||
</span></span></span><span class="code-line"><span class="token template-string"><span class="token string"></span><span class="token template-punctuation string">`</span></span><span class="token punctuation">(</span><span class="token string">'returns $expected when $a is added $b'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter"><span class="token punctuation">{</span> a<span class="token punctuation">,</span> b<span class="token punctuation">,</span> expected <span class="token punctuation">}</span></span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token function">expect</span><span class="token punctuation">(</span>a <span class="token operator">+</span> b<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toBe</span><span class="token punctuation">(</span>expected<span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="或在describe级别"><a aria-hidden="true" tabindex="-1" href="#或在describe级别"><span class="icon icon-link"></span></a>或在“describe”级别</h3><div class="wrap-body">
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1">describe<span class="token punctuation">.</span><span class="token method function property-access">each</span><span class="token punctuation">(</span><span class="token punctuation">[</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token punctuation">[</span><span class="token string">'mobile'</span><span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token punctuation">[</span><span class="token string">'tablet'</span><span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token punctuation">[</span><span class="token string">'desktop'</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">(</span><span class="token string">'checkout flow on %s'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">viewport</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token function">test</span><span class="token punctuation">(</span><span class="token string">'displays success page'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="5"> <span class="token comment">//</span>
|
||||
</span><span class="code-line line-number" line="6"> <span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="7"><span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line">describe<span class="token punctuation">.</span><span class="token method function property-access">each</span><span class="token punctuation">(</span><span class="token punctuation">[</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">[</span><span class="token string">'mobile'</span><span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token punctuation">[</span><span class="token string">'tablet'</span><span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token punctuation">[</span><span class="token string">'desktop'</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line"><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">(</span><span class="token string">'checkout flow on %s'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">viewport</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token function">test</span><span class="token punctuation">(</span><span class="token string">'displays success page'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token comment">//</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
</span></code></pre>
|
||||
<p><a href="https://jestjs.io/docs/en/api#describeeachtablename-fn-timeout">describe.each()</a> 文档、<a href="https://jestjs.io/docs/en/api#testeachtablename-fn-timeout">test.each()</a> 文档</p>
|
||||
</div></div></div></div></div><div class="wrap"><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">
|
||||
<!--rehype:body-class=cols-2-->
|
||||
</div></div><div class="h2wrap-body cols-2"><div class="wrap"><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-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1">describe<span class="token punctuation">.</span><span class="token method function property-access">skip</span><span class="token punctuation">(</span><span class="token string">'makePoniesPink'</span><span class="token spread operator">...</span>
|
||||
</span><span class="code-line line-number" line="2">tests<span class="token punctuation">.</span><span class="token method function property-access">skip</span><span class="token punctuation">(</span><span class="token string">'make each pony pink'</span><span class="token spread operator">...</span>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line">describe<span class="token punctuation">.</span><span class="token method function property-access">skip</span><span class="token punctuation">(</span><span class="token string">'makePoniesPink'</span><span class="token spread operator">...</span>
|
||||
</span><span class="code-line">tests<span class="token punctuation">.</span><span class="token method function property-access">skip</span><span class="token punctuation">(</span><span class="token string">'make each pony pink'</span><span class="token spread operator">...</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1">describe<span class="token punctuation">.</span><span class="token method function property-access">only</span><span class="token punctuation">(</span><span class="token string">'makePoniesPink'</span><span class="token spread operator">...</span>
|
||||
</span><span class="code-line line-number" line="2">tests<span class="token punctuation">.</span><span class="token method function property-access">only</span><span class="token punctuation">(</span><span class="token string">'make each pony pink'</span><span class="token spread operator">...</span>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line">describe<span class="token punctuation">.</span><span class="token method function property-access">only</span><span class="token punctuation">(</span><span class="token string">'makePoniesPink'</span><span class="token spread operator">...</span>
|
||||
</span><span class="code-line">tests<span class="token punctuation">.</span><span class="token method function property-access">only</span><span class="token punctuation">(</span><span class="token string">'make each pony pink'</span><span class="token spread operator">...</span>
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap"><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">
|
||||
<!--rehype:body-class=cols-1-->
|
||||
</div></div><div class="h2wrap-body cols-1"><div class="wrap"><div class="wrap-header h3wrap"><h3 id="实例-1"><a aria-hidden="true" tabindex="-1" href="#实例-1"><span class="icon icon-link"></span></a>实例</h3><div class="wrap-body">
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1"><span class="token keyword">const</span> modulePath <span class="token operator">=</span> <span class="token string">'../module-to-test'</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token function">afterEach</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="3"> jest<span class="token punctuation">.</span><span class="token method function property-access">resetModules</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token function">test</span><span class="token punctuation">(</span><span class="token string">'第一次测试'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="6"> <span class="token comment">// 准备第一次测试的条件</span>
|
||||
</span><span class="code-line line-number" line="7"> <span class="token keyword">const</span> result <span class="token operator">=</span> <span class="token function">require</span><span class="token punctuation">(</span>modulePath<span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="8"> <span class="token function">expect</span><span class="token punctuation">(</span>result<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toMatchSnapshot</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="9"><span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="10"><span class="token function">test</span><span class="token punctuation">(</span><span class="token string">'第二个文本'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="11"> <span class="token comment">// 准备第二次测试的条件</span>
|
||||
</span><span class="code-line line-number" line="12"> <span class="token keyword">const</span> <span class="token function-variable function">fn</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token function">require</span><span class="token punctuation">(</span>modulePath<span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="13"> <span class="token function">expect</span><span class="token punctuation">(</span>fn<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toThrow</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="14"><span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line"><span class="token keyword">const</span> modulePath <span class="token operator">=</span> <span class="token string">'../module-to-test'</span>
|
||||
</span><span class="code-line"><span class="token function">afterEach</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> jest<span class="token punctuation">.</span><span class="token method function property-access">resetModules</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token function">test</span><span class="token punctuation">(</span><span class="token string">'第一次测试'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token comment">// 准备第一次测试的条件</span>
|
||||
</span><span class="code-line"> <span class="token keyword">const</span> result <span class="token operator">=</span> <span class="token function">require</span><span class="token punctuation">(</span>modulePath<span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> <span class="token function">expect</span><span class="token punctuation">(</span>result<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toMatchSnapshot</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token function">test</span><span class="token punctuation">(</span><span class="token string">'第二个文本'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token comment">// 准备第二次测试的条件</span>
|
||||
</span><span class="code-line"> <span class="token keyword">const</span> <span class="token function-variable function">fn</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token arrow operator">=></span> <span class="token function">require</span><span class="token punctuation">(</span>modulePath<span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> <span class="token function">expect</span><span class="token punctuation">(</span>fn<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token method function property-access">toThrow</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||||
</span></code></pre>
|
||||
<p><code>Node.js</code> 和 <code>Jest</code> 会缓存你需要的模块。 要测试具有副作用的模块,您需要在测试之间重置模块注册表</p>
|
||||
</div></div></div></div></div><div class="wrap"><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">
|
||||
|
290
docs/json.html
290
docs/json.html
@ -47,18 +47,18 @@
|
||||
<li>JSON Internet 媒体类型为 <code>application/json</code></li>
|
||||
</ul>
|
||||
</div></div></div><div class="wrap"><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-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"Jason"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token property">"age"</span><span class="token operator">:</span> <span class="token number">39</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token property">"height"</span><span class="token operator">:</span> <span class="token number">1.92</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="5"> <span class="token property">"gender"</span><span class="token operator">:</span> <span class="token string">"M"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="6"> <span class="token property">"salary"</span><span class="token operator">:</span> <span class="token number">70000</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="7"> <span class="token property">"married"</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="8"> <span class="token property">"children"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
|
||||
</span><span class="code-line line-number" line="9"> <span class="token punctuation">{</span><span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"Tom"</span><span class="token punctuation">,</span> <span class="token property">"age"</span><span class="token operator">:</span> <span class="token number">9</span><span class="token punctuation">,</span> <span class="token property">"gender"</span><span class="token operator">:</span><span class="token string">"M"</span><span class="token punctuation">}</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="10"> <span class="token punctuation">{</span><span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"Ava"</span><span class="token punctuation">,</span> <span class="token property">"age"</span><span class="token operator">:</span> <span class="token number">7</span><span class="token punctuation">,</span> <span class="token property">"gender"</span><span class="token operator">:</span><span class="token string">"F"</span><span class="token punctuation">}</span>
|
||||
</span><span class="code-line line-number" line="11"> <span class="token punctuation">]</span>
|
||||
</span><span class="code-line line-number" line="12"><span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"Jason"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"age"</span><span class="token operator">:</span> <span class="token number">39</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"height"</span><span class="token operator">:</span> <span class="token number">1.92</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"gender"</span><span class="token operator">:</span> <span class="token string">"M"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"salary"</span><span class="token operator">:</span> <span class="token number">70000</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"married"</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"children"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">{</span><span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"Tom"</span><span class="token punctuation">,</span> <span class="token property">"age"</span><span class="token operator">:</span> <span class="token number">9</span><span class="token punctuation">,</span> <span class="token property">"gender"</span><span class="token operator">:</span><span class="token string">"M"</span><span class="token punctuation">}</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">{</span><span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"Ava"</span><span class="token punctuation">,</span> <span class="token property">"age"</span><span class="token operator">:</span> <span class="token number">7</span><span class="token punctuation">,</span> <span class="token property">"gender"</span><span class="token operator">:</span><span class="token string">"F"</span><span class="token punctuation">}</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">]</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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">
|
||||
|
||||
@ -148,14 +148,14 @@
|
||||
|
||||
<table><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><code>\"</code></td><td>双引号 Double quote</td></tr><tr><td><code>\\</code></td><td>反斜杠 Backslash</td></tr><tr><td><code>\/</code></td><td>正斜杠 Forward slash</td></tr><tr><td><code>\b</code></td><td>退格 Backspace</td></tr><tr><td><code>\f</code></td><td>换页 Form feed</td></tr><tr><td><code>\n</code></td><td>换行 Newline</td></tr><tr><td><code>\r</code></td><td>回车 Carriage return</td></tr><tr><td><code>\t</code></td><td>标签 Tab</td></tr><tr><td><code>\u</code></td><td>后跟四个十六进制数字</td></tr></tbody></table>
|
||||
</div></div><div class="h3wrap-body"><div class="wrap"><div class="wrap-header h4wrap"><h4 id="示例-1"><a aria-hidden="true" tabindex="-1" href="#示例-1"><span class="icon icon-link"></span></a>示例</h4><div class="wrap-body">
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token property">"url"</span><span class="token operator">:</span> <span class="token string">"https://quickref.me"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token property">"msg"</span> <span class="token operator">:</span> <span class="token string">"Hi,\n\"QuickRef.ME\""</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token property">"intro"</span><span class="token operator">:</span> <span class="token string">"Share quick reference and cheat sheet for developers."</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"url"</span><span class="token operator">:</span> <span class="token string">"https://quickref.me"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"msg"</span> <span class="token operator">:</span> <span class="token string">"Hi,\n\"QuickRef.ME\""</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"intro"</span><span class="token operator">:</span> <span class="token string">"Share quick reference and cheat sheet for developers."</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h4wrap"><h4 id="无效字符串"><a aria-hidden="true" tabindex="-1" href="#无效字符串"><span class="icon icon-link"></span></a>无效字符串</h4><div class="wrap-body">
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">{</span> <span class="token property">"foo"</span><span class="token operator">:</span> 'bar' <span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span> <span class="token property">"foo"</span><span class="token operator">:</span> 'bar' <span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
<p>Have to be delimited by double quotes</p>
|
||||
</div></div></div></div></div><div class="wrap 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">
|
||||
@ -184,95 +184,95 @@
|
||||
<table class="show-header "><thead><tr><th>类型</th><th>说明</th></tr></thead><tbody><tr><td><code>Integer</code></td><td>数字 1-9、0 和正数或负数</td></tr><tr><td><code>Fraction</code></td><td>0.3、3.9 等分数</td></tr><tr><td><code>Exponent</code></td><td>指数,如 e、e+、e-、E、E+、E</td></tr></tbody></table>
|
||||
<!--rehype:className=show-header -->
|
||||
</div></div><div class="h3wrap-body"><div class="wrap"><div class="wrap-header h4wrap"><h4 id="示例-2"><a aria-hidden="true" tabindex="-1" href="#示例-2"><span class="icon icon-link"></span></a>示例</h4><div class="wrap-body">
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token property">"positive"</span> <span class="token operator">:</span> <span class="token number">12</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token property">"negative"</span> <span class="token operator">:</span> <span class="token number">-1</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token property">"fraction"</span> <span class="token operator">:</span> <span class="token number">10.25</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="5"> <span class="token property">"exponent"</span> <span class="token operator">:</span> <span class="token number">1.0E+2</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="6"> <span class="token property">"zero"</span> <span class="token operator">:</span> <span class="token number">0</span>
|
||||
</span><span class="code-line line-number" line="7"><span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"positive"</span> <span class="token operator">:</span> <span class="token number">12</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"negative"</span> <span class="token operator">:</span> <span class="token number">-1</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"fraction"</span> <span class="token operator">:</span> <span class="token number">10.25</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"exponent"</span> <span class="token operator">:</span> <span class="token number">1.0E+2</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"zero"</span> <span class="token operator">:</span> <span class="token number">0</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h4wrap"><h4 id="无效的数字"><a aria-hidden="true" tabindex="-1" href="#无效的数字"><span class="icon icon-link"></span></a>无效的数字</h4><div class="wrap-body">
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">{</span> <span class="token property">"foo"</span><span class="token operator">:</span> 0xFF <span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span> <span class="token property">"foo"</span><span class="token operator">:</span> 0xFF <span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
<p>在JSON中,只能使用十进制文字</p>
|
||||
</div></div></div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="对象-objects"><a aria-hidden="true" tabindex="-1" href="#对象-objects"><span class="icon icon-link"></span></a>对象 Objects</h3><div class="wrap-body">
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token property">"color"</span><span class="token operator">:</span> <span class="token string">"Purple"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token property">"id"</span><span class="token operator">:</span> <span class="token string">"210"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token property">"composition"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="5"> <span class="token property">"R"</span><span class="token operator">:</span> <span class="token number">70</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="6"> <span class="token property">"G"</span><span class="token operator">:</span> <span class="token number">39</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="7"> <span class="token property">"B"</span><span class="token operator">:</span> <span class="token number">89</span>
|
||||
</span><span class="code-line line-number" line="8"> <span class="token punctuation">}</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="9"> <span class="token property">"empty_object"</span><span class="token operator">:</span> <span class="token punctuation">{</span><span class="token punctuation">}</span>
|
||||
</span><span class="code-line line-number" line="10"><span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"color"</span><span class="token operator">:</span> <span class="token string">"Purple"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"id"</span><span class="token operator">:</span> <span class="token string">"210"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"composition"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"R"</span><span class="token operator">:</span> <span class="token number">70</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"G"</span><span class="token operator">:</span> <span class="token number">39</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"B"</span><span class="token operator">:</span> <span class="token number">89</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">}</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"empty_object"</span><span class="token operator">:</span> <span class="token punctuation">{</span><span class="token punctuation">}</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
<p>用逗号分隔的多个键/值对</p>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="数组-arrays"><a aria-hidden="true" tabindex="-1" href="#数组-arrays"><span class="icon icon-link"></span></a>数组 Arrays</h3><div class="wrap-body">
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">,</span> <span class="token number">4</span><span class="token punctuation">,</span> <span class="token number">5</span><span class="token punctuation">]</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">,</span> <span class="token number">4</span><span class="token punctuation">,</span> <span class="token number">5</span><span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
<p>以 <code>[</code> 开始并以 <code>]</code> 结束</p>
|
||||
</div></div></div><div class="wrap"><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-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token property">"children"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token punctuation">{</span> <span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"Jimmy Smith"</span><span class="token punctuation">,</span> <span class="token property">"age"</span><span class="token operator">:</span> <span class="token number">15</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token punctuation">{</span> <span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"Sammy Sosa"</span><span class="token punctuation">,</span> <span class="token property">"age"</span><span class="token operator">:</span> <span class="token number">12</span> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line line-number" line="5"> <span class="token punctuation">]</span>
|
||||
</span><span class="code-line line-number" line="6"><span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"children"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">{</span> <span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"Jimmy Smith"</span><span class="token punctuation">,</span> <span class="token property">"age"</span><span class="token operator">:</span> <span class="token number">15</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">{</span> <span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"Sammy Sosa"</span><span class="token punctuation">,</span> <span class="token property">"age"</span><span class="token operator">:</span> <span class="token number">12</span> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">]</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token property">"attributes"</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token string">"a1"</span><span class="token punctuation">,</span> <span class="token string">"a2"</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token property">"methods"</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token string">"getter"</span><span class="token punctuation">,</span> <span class="token string">"setter"</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token property">"empty_array"</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"attributes"</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token string">"a1"</span><span class="token punctuation">,</span> <span class="token string">"a2"</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"methods"</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token string">"getter"</span><span class="token punctuation">,</span> <span class="token string">"setter"</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"empty_array"</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token property">"my_sequences"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token punctuation">[</span><span class="token number">4</span><span class="token punctuation">,</span> <span class="token number">5</span><span class="token punctuation">,</span> <span class="token number">6</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="5"> <span class="token punctuation">[</span><span class="token number">7</span><span class="token punctuation">,</span> <span class="token number">8</span><span class="token punctuation">,</span> <span class="token number">9</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="6"> <span class="token punctuation">[</span><span class="token number">10</span><span class="token punctuation">,</span> <span class="token number">11</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line line-number" line="7"> <span class="token punctuation">]</span>
|
||||
</span><span class="code-line line-number" line="8"><span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"my_sequences"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">[</span><span class="token number">4</span><span class="token punctuation">,</span> <span class="token number">5</span><span class="token punctuation">,</span> <span class="token number">6</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">[</span><span class="token number">7</span><span class="token punctuation">,</span> <span class="token number">8</span><span class="token punctuation">,</span> <span class="token number">9</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">[</span><span class="token number">10</span><span class="token punctuation">,</span> <span class="token number">11</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">]</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token property">"Mark McGwire"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token property">"hr"</span><span class="token operator">:</span> <span class="token number">65</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token property">"avg"</span><span class="token operator">:</span> <span class="token number">0.278</span>
|
||||
</span><span class="code-line line-number" line="5"> <span class="token punctuation">}</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="6"> <span class="token property">"Sammy Sosa"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="7"> <span class="token property">"hr"</span><span class="token operator">:</span> <span class="token number">63</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="8"> <span class="token property">"avg"</span><span class="token operator">:</span> <span class="token number">0.288</span>
|
||||
</span><span class="code-line line-number" line="9"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line line-number" line="10"><span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"Mark McGwire"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"hr"</span><span class="token operator">:</span> <span class="token number">65</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"avg"</span><span class="token operator">:</span> <span class="token number">0.278</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">}</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"Sammy Sosa"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"hr"</span><span class="token operator">:</span> <span class="token number">63</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"avg"</span><span class="token operator">:</span> <span class="token number">0.288</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token property">"Jack"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token property">"id"</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"Franc"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="5"> <span class="token property">"salary"</span><span class="token operator">:</span> <span class="token number">25000</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="6"> <span class="token property">"hobby"</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token string">"a"</span><span class="token punctuation">,</span> <span class="token string">"b"</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="7"> <span class="token property">"location"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="8"> <span class="token property">"country"</span><span class="token operator">:</span> <span class="token string">"A"</span><span class="token punctuation">,</span> <span class="token property">"city"</span><span class="token operator">:</span> <span class="token string">"A-A"</span>
|
||||
</span><span class="code-line line-number" line="9"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line line-number" line="10"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line line-number" line="11"><span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"Jack"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"id"</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"Franc"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"salary"</span><span class="token operator">:</span> <span class="token number">25000</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"hobby"</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token string">"a"</span><span class="token punctuation">,</span> <span class="token string">"b"</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"location"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"country"</span><span class="token operator">:</span> <span class="token string">"A"</span><span class="token punctuation">,</span> <span class="token property">"city"</span><span class="token operator">:</span> <span class="token string">"A-A"</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap"><div class="wrap-header h2wrap"><h2 id="在-javascript-中访问-json"><a aria-hidden="true" tabindex="-1" href="#在-javascript-中访问-json"><span class="icon icon-link"></span></a>在 JavaScript 中访问 JSON</h2><div class="wrap-body">
|
||||
</div></div><div class="h2wrap-body"><div class="wrap"><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-javascript"><code class="language-javascript code-highlight"><span class="code-line line-number" line="1"><span class="token keyword">let</span> myObject <span class="token operator">=</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token string-property property">"name"</span><span class="token operator">:</span> <span class="token string">"Jason"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token string-property property">"last"</span><span class="token operator">:</span> <span class="token string">"Doe"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token string-property property">"age"</span><span class="token operator">:</span> <span class="token number">39</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="5"> <span class="token string-property property">"gender"</span><span class="token operator">:</span> <span class="token string">"M"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="6"> <span class="token string-property property">"salary"</span><span class="token operator">:</span> <span class="token number">70000</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="7"> <span class="token string-property property">"married"</span><span class="token operator">:</span> <span class="token boolean">true</span>
|
||||
</span><span class="code-line line-number" line="8"><span class="token punctuation">}</span><span class="token punctuation">;</span>
|
||||
<pre class="language-javascript"><code class="language-javascript code-highlight"><span class="code-line"><span class="token keyword">let</span> myObject <span class="token operator">=</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token string-property property">"name"</span><span class="token operator">:</span> <span class="token string">"Jason"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token string-property property">"last"</span><span class="token operator">:</span> <span class="token string">"Doe"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token string-property property">"age"</span><span class="token operator">:</span> <span class="token number">39</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token string-property property">"gender"</span><span class="token operator">:</span> <span class="token string">"M"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token string-property property">"salary"</span><span class="token operator">:</span> <span class="token number">70000</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token string-property property">"married"</span><span class="token operator">:</span> <span class="token boolean">true</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span><span class="token punctuation">;</span>
|
||||
</span></code></pre>
|
||||
<hr>
|
||||
|
||||
@ -307,32 +307,32 @@
|
||||
<table><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><code>myObject.name</code></td><td>"Jason"</td></tr><tr><td><code>myObject["name"]</code></td><td>"Jason"</td></tr><tr><td><code>myObject.age</code></td><td>39</td></tr><tr><td><code>myObject.other</code></td><td>undefined</td></tr><tr><td><code>myObject[0]</code></td><td>undefined</td></tr></tbody></table>
|
||||
</div></div></div><div class="wrap" style="grid-row: span 2/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-style=grid-row: span 2/span 2;-->
|
||||
<pre class="language-javascript"><code class="language-javascript code-highlight"><span class="code-line line-number" line="1"><span class="token keyword">let</span> myObject <span class="token operator">=</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token string-property property">"ref"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token string-property property">"name"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token string-property property">"last"</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="5"> <span class="token string-property property">"age"</span><span class="token operator">:</span> <span class="token number">2</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="6"> <span class="token string-property property">"gender"</span><span class="token operator">:</span> <span class="token number">3</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="7"> <span class="token string-property property">"salary"</span><span class="token operator">:</span> <span class="token number">4</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="8"> <span class="token string-property property">"married"</span><span class="token operator">:</span> <span class="token number">5</span>
|
||||
</span><span class="code-line line-number" line="9"> <span class="token punctuation">}</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="10"> <span class="token string-property property">"jdoe"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
|
||||
</span><span class="code-line line-number" line="11"> <span class="token string">"Jason"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="12"> <span class="token string">"Doe"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="13"> <span class="token number">39</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="14"> <span class="token string">"M"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="15"> <span class="token number">70000</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="16"> <span class="token boolean">true</span>
|
||||
</span><span class="code-line line-number" line="17"> <span class="token punctuation">]</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="18"> <span class="token string-property property">"jsmith"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
|
||||
</span><span class="code-line line-number" line="19"> <span class="token string">"Tom"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="20"> <span class="token string">"Smith"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="21"> <span class="token number">42</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="22"> <span class="token string">"F"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="23"> <span class="token number">80000</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="24"> <span class="token boolean">true</span>
|
||||
</span><span class="code-line line-number" line="25"> <span class="token punctuation">]</span>
|
||||
</span><span class="code-line line-number" line="26"><span class="token punctuation">}</span><span class="token punctuation">;</span>
|
||||
<pre class="language-javascript"><code class="language-javascript code-highlight"><span class="code-line"><span class="token keyword">let</span> myObject <span class="token operator">=</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token string-property property">"ref"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token string-property property">"name"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token string-property property">"last"</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token string-property property">"age"</span><span class="token operator">:</span> <span class="token number">2</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token string-property property">"gender"</span><span class="token operator">:</span> <span class="token number">3</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token string-property property">"salary"</span><span class="token operator">:</span> <span class="token number">4</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token string-property property">"married"</span><span class="token operator">:</span> <span class="token number">5</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">}</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token string-property property">"jdoe"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
|
||||
</span><span class="code-line"> <span class="token string">"Jason"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token string">"Doe"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token number">39</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token string">"M"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token number">70000</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token boolean">true</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">]</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token string-property property">"jsmith"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
|
||||
</span><span class="code-line"> <span class="token string">"Tom"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token string">"Smith"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token number">42</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token string">"F"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token number">80000</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token boolean">true</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">]</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span><span class="token punctuation">;</span>
|
||||
</span></code></pre>
|
||||
<hr>
|
||||
|
||||
@ -367,32 +367,32 @@
|
||||
<table><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><code>myObject.ref.age</code></td><td>2</td></tr><tr><td><code>myObject["ref"]["age"]</code></td><td>2</td></tr><tr><td><code>myObject.jdoe</code></td><td>["Jason", "Doe", 39 ...]</td></tr><tr><td><code>myObject.jsmith[3]</code></td><td>"F"</td></tr><tr><td><code>myObject[1]</code></td><td>undefined</td></tr></tbody></table>
|
||||
</div></div></div><div class="wrap" style="grid-row: span 2/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-style=grid-row: span 2/span 2;-->
|
||||
<pre class="language-javascript"><code class="language-javascript code-highlight"><span class="code-line line-number" line="1"><span class="token keyword">let</span> myArray <span class="token operator">=</span> <span class="token punctuation">[</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token string-property property">"name"</span><span class="token operator">:</span> <span class="token string">"Jason"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token string-property property">"last"</span><span class="token operator">:</span> <span class="token string">"Doe"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="5"> <span class="token string-property property">"age"</span><span class="token operator">:</span> <span class="token number">39</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="6"> <span class="token string-property property">"gender"</span><span class="token operator">:</span> <span class="token string">"M"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="7"> <span class="token string-property property">"salary"</span><span class="token operator">:</span> <span class="token number">70000</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="8"> <span class="token string-property property">"married"</span><span class="token operator">:</span> <span class="token boolean">true</span>
|
||||
</span><span class="code-line line-number" line="9"> <span class="token punctuation">}</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="10"> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="11"> <span class="token string-property property">"name"</span><span class="token operator">:</span> <span class="token string">"Tom"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="12"> <span class="token string-property property">"last"</span><span class="token operator">:</span> <span class="token string">"Smith"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="13"> <span class="token string-property property">"age"</span><span class="token operator">:</span> <span class="token number">42</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="14"> <span class="token string-property property">"gender"</span><span class="token operator">:</span> <span class="token string">"F"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="15"> <span class="token string-property property">"salary"</span><span class="token operator">:</span> <span class="token number">80000</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="16"> <span class="token string-property property">"married"</span><span class="token operator">:</span> <span class="token boolean">true</span>
|
||||
</span><span class="code-line line-number" line="17"> <span class="token punctuation">}</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="18"> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="19"> <span class="token string-property property">"name"</span><span class="token operator">:</span> <span class="token string">"Amy"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="20"> <span class="token string-property property">"last"</span><span class="token operator">:</span> <span class="token string">"Burnquist"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="21"> <span class="token string-property property">"age"</span><span class="token operator">:</span> <span class="token number">29</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="22"> <span class="token string-property property">"gender"</span><span class="token operator">:</span> <span class="token string">"F"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="23"> <span class="token string-property property">"salary"</span><span class="token operator">:</span> <span class="token number">60000</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="24"> <span class="token string-property property">"married"</span><span class="token operator">:</span> <span class="token boolean">false</span>
|
||||
</span><span class="code-line line-number" line="25"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line line-number" line="26"><span class="token punctuation">]</span><span class="token punctuation">;</span>
|
||||
<pre class="language-javascript"><code class="language-javascript code-highlight"><span class="code-line"><span class="token keyword">let</span> myArray <span class="token operator">=</span> <span class="token punctuation">[</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token string-property property">"name"</span><span class="token operator">:</span> <span class="token string">"Jason"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token string-property property">"last"</span><span class="token operator">:</span> <span class="token string">"Doe"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token string-property property">"age"</span><span class="token operator">:</span> <span class="token number">39</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token string-property property">"gender"</span><span class="token operator">:</span> <span class="token string">"M"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token string-property property">"salary"</span><span class="token operator">:</span> <span class="token number">70000</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token string-property property">"married"</span><span class="token operator">:</span> <span class="token boolean">true</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">}</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token string-property property">"name"</span><span class="token operator">:</span> <span class="token string">"Tom"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token string-property property">"last"</span><span class="token operator">:</span> <span class="token string">"Smith"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token string-property property">"age"</span><span class="token operator">:</span> <span class="token number">42</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token string-property property">"gender"</span><span class="token operator">:</span> <span class="token string">"F"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token string-property property">"salary"</span><span class="token operator">:</span> <span class="token number">80000</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token string-property property">"married"</span><span class="token operator">:</span> <span class="token boolean">true</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">}</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token string-property property">"name"</span><span class="token operator">:</span> <span class="token string">"Amy"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token string-property property">"last"</span><span class="token operator">:</span> <span class="token string">"Burnquist"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token string-property property">"age"</span><span class="token operator">:</span> <span class="token number">29</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token string-property property">"gender"</span><span class="token operator">:</span> <span class="token string">"F"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token string-property property">"salary"</span><span class="token operator">:</span> <span class="token number">60000</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token string-property property">"married"</span><span class="token operator">:</span> <span class="token boolean">false</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line"><span class="token punctuation">]</span><span class="token punctuation">;</span>
|
||||
</span></code></pre>
|
||||
<hr>
|
||||
|
||||
@ -426,14 +426,14 @@
|
||||
|
||||
<table><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><code>myArray[0]</code></td><td><code>{</code>"name": "Jason", ...<code>}</code></td></tr><tr><td><code>myArray[1].name</code></td><td>"Tom"</td></tr><tr><td><code>myArray[1][2]</code></td><td>42</td></tr><tr><td><code>myArray[3]</code></td><td>undefined</td></tr><tr><td><code>myArray[3].gender</code></td><td>TypeError: Cannot read...</td></tr></tbody></table>
|
||||
</div></div></div><div class="wrap"><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-javascript"><code class="language-javascript code-highlight"><span class="code-line line-number" line="1"><span class="token keyword">let</span> myArray <span class="token operator">=</span> <span class="token punctuation">[</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token string">"Jason"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token string">"Doe"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token number">39</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="5"> <span class="token string">"M"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="6"> <span class="token number">70000</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="7"> <span class="token boolean">true</span>
|
||||
</span><span class="code-line line-number" line="8"><span class="token punctuation">]</span><span class="token punctuation">;</span>
|
||||
<pre class="language-javascript"><code class="language-javascript code-highlight"><span class="code-line"><span class="token keyword">let</span> myArray <span class="token operator">=</span> <span class="token punctuation">[</span>
|
||||
</span><span class="code-line"> <span class="token string">"Jason"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token string">"Doe"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token number">39</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token string">"M"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token number">70000</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token boolean">true</span>
|
||||
</span><span class="code-line"><span class="token punctuation">]</span><span class="token punctuation">;</span>
|
||||
</span></code></pre>
|
||||
<hr>
|
||||
|
||||
|
@ -38,123 +38,123 @@
|
||||
<p>这是 Markdown 语法的快速参考备忘单。</p>
|
||||
</div></header><div class="h1wrap-body"><div class="wrap"><div class="wrap-header h2wrap"><h2 id="markdown-快速参考"><a aria-hidden="true" tabindex="-1" href="#markdown-快速参考"><span class="icon icon-link"></span></a>Markdown 快速参考</h2><div class="wrap-body">
|
||||
</div></div><div class="h2wrap-body"><div class="wrap"><div class="wrap-header h3wrap"><h3 id="标题-atx-风格"><a aria-hidden="true" tabindex="-1" href="#标题-atx-风格"><span class="icon icon-link"></span></a>标题 (atx 风格)</h3><div class="wrap-body">
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line line-number" line="1"><span class="token title important"><span class="token punctuation">#</span> h1</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token title important"><span class="token punctuation">##</span> h2</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token title important"><span class="token punctuation">###</span> h3</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token title important"><span class="token punctuation">####</span> h4</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token title important"><span class="token punctuation">#####</span> h5</span>
|
||||
</span><span class="code-line line-number" line="6"><span class="token title important"><span class="token punctuation">######</span> h6</span>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line"><span class="token title important"><span class="token punctuation">#</span> h1</span>
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">##</span> h2</span>
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> h3</span>
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">####</span> h4</span>
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">#####</span> h5</span>
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">######</span> h6</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="标题-setext-风格"><a aria-hidden="true" tabindex="-1" href="#标题-setext-风格"><span class="icon icon-link"></span></a>标题 (setext 风格)</h3><div class="wrap-body">
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line line-number" line="1"><span class="token title important">Header 1
|
||||
</span></span><span class="code-line line-number" line="2"><span class="token title important"><span class="token punctuation">========</span></span>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line"><span class="token title important">Header 1
|
||||
</span></span><span class="code-line"><span class="token title important"><span class="token punctuation">========</span></span>
|
||||
</span></code></pre>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line line-number" line="1"><span class="token title important">Header 2
|
||||
</span></span><span class="code-line line-number" line="2"><span class="token title important"><span class="token punctuation">--------</span></span>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line"><span class="token title important">Header 2
|
||||
</span></span><span class="code-line"><span class="token title important"><span class="token punctuation">--------</span></span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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-markdown"><code class="language-markdown code-highlight"><span class="code-line line-number" line="1"><span class="token blockquote punctuation">></span> 这是一个
|
||||
</span><span class="code-line line-number" line="2"><span class="token blockquote punctuation">></span> 块引用
|
||||
</span><span class="code-line line-number" line="3"><span class="token blockquote punctuation">></span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token blockquote punctuation">> ></span> 嵌套
|
||||
</span><span class="code-line line-number" line="5"><span class="token blockquote punctuation">> ></span> 块引用
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line"><span class="token blockquote punctuation">></span> 这是一个
|
||||
</span><span class="code-line"><span class="token blockquote punctuation">></span> 块引用
|
||||
</span><span class="code-line"><span class="token blockquote punctuation">></span>
|
||||
</span><span class="code-line"><span class="token blockquote punctuation">> ></span> 嵌套
|
||||
</span><span class="code-line"><span class="token blockquote punctuation">> ></span> 块引用
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap" style="grid-row: span 2/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-style=grid-row: span 2/span 2;-->
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line line-number" line="1"><span class="token list punctuation">*</span> Item 1
|
||||
</span><span class="code-line line-number" line="2"><span class="token list punctuation">*</span> Item 2
|
||||
</span><span class="code-line line-number" line="3"> <span class="token list punctuation">*</span> item 3a
|
||||
</span><span class="code-line line-number" line="4"> <span class="token list punctuation">*</span> item 3b
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line"><span class="token list punctuation">*</span> Item 1
|
||||
</span><span class="code-line"><span class="token list punctuation">*</span> Item 2
|
||||
</span><span class="code-line"> <span class="token list punctuation">*</span> item 3a
|
||||
</span><span class="code-line"> <span class="token list punctuation">*</span> item 3b
|
||||
</span></code></pre>
|
||||
<p>或者</p>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line line-number" line="1"><span class="token list punctuation">-</span> Item 1
|
||||
</span><span class="code-line line-number" line="2"><span class="token list punctuation">-</span> Item 2
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line"><span class="token list punctuation">-</span> Item 1
|
||||
</span><span class="code-line"><span class="token list punctuation">-</span> Item 2
|
||||
</span></code></pre>
|
||||
<p>或者</p>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line line-number" line="1"><span class="token list punctuation">+</span> Item 1
|
||||
</span><span class="code-line line-number" line="2"><span class="token list punctuation">+</span> Item 2
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line"><span class="token list punctuation">+</span> Item 1
|
||||
</span><span class="code-line"><span class="token list punctuation">+</span> Item 2
|
||||
</span></code></pre>
|
||||
<p>或者</p>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line line-number" line="1"><span class="token list punctuation">-</span> [ ] Checkbox off
|
||||
</span><span class="code-line line-number" line="2"><span class="token list punctuation">-</span> [x] Checkbox on
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line"><span class="token list punctuation">-</span> [ ] Checkbox off
|
||||
</span><span class="code-line"><span class="token list punctuation">-</span> [x] Checkbox on
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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-markdown"><code class="language-markdown code-highlight"><span class="code-line line-number" line="1"><span class="token list punctuation">1.</span> Item 1
|
||||
</span><span class="code-line line-number" line="2"><span class="token list punctuation">2.</span> Item 2
|
||||
</span><span class="code-line line-number" line="3"> a. item 3a
|
||||
</span><span class="code-line line-number" line="4"> b. item 3b
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line"><span class="token list punctuation">1.</span> Item 1
|
||||
</span><span class="code-line"><span class="token list punctuation">2.</span> Item 2
|
||||
</span><span class="code-line"> a. item 3a
|
||||
</span><span class="code-line"> b. item 3b
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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-markdown"><code class="language-markdown code-highlight"><span class="code-line line-number" line="1"><span class="token url">[<span class="token content">link</span>](<span class="token url">http://google.com</span>)</span>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line"><span class="token url">[<span class="token content">link</span>](<span class="token url">http://google.com</span>)</span>
|
||||
</span></code></pre>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line line-number" line="1"><span class="token url">[<span class="token content">link</span>][<span class="token variable">google</span>]</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token url-reference url"><span class="token punctuation">[</span><span class="token variable">google</span><span class="token punctuation">]</span><span class="token punctuation">:</span> http://google.com</span>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line"><span class="token url">[<span class="token content">link</span>][<span class="token variable">google</span>]</span>
|
||||
</span><span class="code-line"><span class="token url-reference url"><span class="token punctuation">[</span><span class="token variable">google</span><span class="token punctuation">]</span><span class="token punctuation">:</span> http://google.com</span>
|
||||
</span></code></pre>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line line-number" line="1"><http://google.com>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line"><http://google.com>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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-markdown"><code class="language-markdown code-highlight"><span class="code-line line-number" line="1"><span class="token italic"><span class="token punctuation">*</span><span class="token content">斜体</span><span class="token punctuation">*</span></span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token italic"><span class="token punctuation">_</span><span class="token content">斜体</span><span class="token punctuation">_</span></span>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line"><span class="token italic"><span class="token punctuation">*</span><span class="token content">斜体</span><span class="token punctuation">*</span></span>
|
||||
</span><span class="code-line"><span class="token italic"><span class="token punctuation">_</span><span class="token content">斜体</span><span class="token punctuation">_</span></span>
|
||||
</span></code></pre>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line line-number" line="1"><span class="token bold"><span class="token punctuation">**</span><span class="token content">粗体</span><span class="token punctuation">**</span></span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token bold"><span class="token punctuation">__</span><span class="token content">粗体</span><span class="token punctuation">__</span></span>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line"><span class="token bold"><span class="token punctuation">**</span><span class="token content">粗体</span><span class="token punctuation">**</span></span>
|
||||
</span><span class="code-line"><span class="token bold"><span class="token punctuation">__</span><span class="token content">粗体</span><span class="token punctuation">__</span></span>
|
||||
</span></code></pre>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line line-number" line="1"><span class="token code-snippet code keyword">`内联代码`</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token strike"><span class="token punctuation">~~</span><span class="token content">删除</span><span class="token punctuation">~~</span></span>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line"><span class="token code-snippet code keyword">`内联代码`</span>
|
||||
</span><span class="code-line"><span class="token strike"><span class="token punctuation">~~</span><span class="token content">删除</span><span class="token punctuation">~~</span></span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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">
|
||||
<p>连字符</p>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line line-number" line="1"><span class="token hr punctuation">---</span>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line"><span class="token hr punctuation">---</span>
|
||||
</span></code></pre>
|
||||
<p>星号</p>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line line-number" line="1"><span class="token hr punctuation">***</span>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line"><span class="token hr punctuation">***</span>
|
||||
</span></code></pre>
|
||||
<p>下划线</p>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line line-number" line="1">___
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line">___
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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-markdown"><code class="language-markdown code-highlight"><span class="code-line line-number" line="1"><span class="token code"><span class="token punctuation">```</span><span class="token code-language">javascript</span>
|
||||
</span></span><span class="code-line line-number" line="2"><span class="token code"><span class="token code-block language-javascript"><span class="token console class-name">console</span><span class="token punctuation">.</span><span class="token method function property-access">log</span><span class="token punctuation">(</span><span class="token string">"This is a block code"</span><span class="token punctuation">)</span></span>
|
||||
</span></span><span class="code-line line-number" line="3"><span class="token code"><span class="token punctuation">```</span></span>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line"><span class="token code"><span class="token punctuation">```</span><span class="token code-language">javascript</span>
|
||||
</span></span><span class="code-line"><span class="token code"><span class="token code-block language-javascript"><span class="token console class-name">console</span><span class="token punctuation">.</span><span class="token method function property-access">log</span><span class="token punctuation">(</span><span class="token string">"This is a block code"</span><span class="token punctuation">)</span></span>
|
||||
</span></span><span class="code-line"><span class="token code"><span class="token punctuation">```</span></span>
|
||||
</span></code></pre>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line line-number" line="1">~<span class="token strike"><span class="token punctuation">~~</span><span class="token content">css
|
||||
</span></span></span><span class="code-line line-number" line="2"><span class="token strike"><span class="token content">.button { border: none; }
|
||||
</span></span></span><span class="code-line line-number" line="3"><span class="token strike"><span class="token content"></span><span class="token punctuation">~~</span></span>~
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line">~<span class="token strike"><span class="token punctuation">~~</span><span class="token content">css
|
||||
</span></span></span><span class="code-line"><span class="token strike"><span class="token content">.button { border: none; }
|
||||
</span></span></span><span class="code-line"><span class="token strike"><span class="token content"></span><span class="token punctuation">~~</span></span>~
|
||||
</span></code></pre>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line line-number" line="1"> 4 空格缩进做一个代码块
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line"> 4 空格缩进做一个代码块
|
||||
</span></code></pre>
|
||||
</div></div><div class="h3wrap-body"><div class="wrap"><div class="wrap-header h4wrap"><h4 id="内联代码"><a aria-hidden="true" tabindex="-1" href="#内联代码"><span class="icon icon-link"></span></a>内联代码</h4><div class="wrap-body">
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line line-number" line="1"><span class="token code-snippet code keyword">`Inline code`</span> 周围有反引号
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line"><span class="token code-snippet code keyword">`Inline code`</span> 周围有反引号
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap" style="grid-column: span 2/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-style=grid-column: span 2/span 2;-->
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line line-number" line="1"><span class="token table"><span class="token table-header-row"><span class="token punctuation">|</span><span class="token table-header important"> 左栏 </span><span class="token punctuation">|</span><span class="token table-header important"> 中间栏 </span><span class="token punctuation">|</span><span class="token table-header important"> 右栏 </span><span class="token punctuation">|</span>
|
||||
</span></span></span><span class="code-line line-number" line="2"><span class="token table"><span class="token table-header-row"></span><span class="token table-line"><span class="token punctuation">|</span><span class="token punctuation">:------------</span><span class="token punctuation">|</span><span class="token punctuation">:-------------:</span><span class="token punctuation">|</span><span class="token punctuation">-------------:</span><span class="token punctuation">|</span>
|
||||
</span></span></span><span class="code-line line-number" line="3"><span class="token table"><span class="token table-line"></span><span class="token table-data-rows"><span class="token punctuation">|</span><span class="token table-data"> 单元格 1 </span><span class="token punctuation">|</span><span class="token table-data"> 居中 </span><span class="token punctuation">|</span><span class="token table-data"> $1600 </span><span class="token punctuation">|</span>
|
||||
</span></span></span><span class="code-line line-number" line="4"><span class="token table"><span class="token table-data-rows"><span class="token punctuation">|</span><span class="token table-data"> 单元格 2 </span><span class="token punctuation">|</span><span class="token table-data"> 单元格 3 </span><span class="token punctuation">|</span><span class="token table-data"> $12 </span><span class="token punctuation">|</span>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line"><span class="token table"><span class="token table-header-row"><span class="token punctuation">|</span><span class="token table-header important"> 左栏 </span><span class="token punctuation">|</span><span class="token table-header important"> 中间栏 </span><span class="token punctuation">|</span><span class="token table-header important"> 右栏 </span><span class="token punctuation">|</span>
|
||||
</span></span></span><span class="code-line"><span class="token table"><span class="token table-header-row"></span><span class="token table-line"><span class="token punctuation">|</span><span class="token punctuation">:------------</span><span class="token punctuation">|</span><span class="token punctuation">:-------------:</span><span class="token punctuation">|</span><span class="token punctuation">-------------:</span><span class="token punctuation">|</span>
|
||||
</span></span></span><span class="code-line"><span class="token table"><span class="token table-line"></span><span class="token table-data-rows"><span class="token punctuation">|</span><span class="token table-data"> 单元格 1 </span><span class="token punctuation">|</span><span class="token table-data"> 居中 </span><span class="token punctuation">|</span><span class="token table-data"> $1600 </span><span class="token punctuation">|</span>
|
||||
</span></span></span><span class="code-line"><span class="token table"><span class="token table-data-rows"><span class="token punctuation">|</span><span class="token table-data"> 单元格 2 </span><span class="token punctuation">|</span><span class="token table-data"> 单元格 3 </span><span class="token punctuation">|</span><span class="token table-data"> $12 </span><span class="token punctuation">|</span>
|
||||
</span></span></span></code></pre>
|
||||
<p>简单的风格</p>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line line-number" line="1"><span class="token table"><span class="token table-header-row"><span class="token table-header important"> 左栏 </span><span class="token punctuation">|</span><span class="token table-header important"> 中间栏 </span><span class="token punctuation">|</span><span class="token table-header important"> 右栏</span>
|
||||
</span></span></span><span class="code-line line-number" line="2"><span class="token table"><span class="token table-header-row"></span><span class="token table-line"><span class="token punctuation">:----------:</span><span class="token punctuation">|</span><span class="token punctuation">:-------------:</span><span class="token punctuation">|</span><span class="token punctuation">:-----------:</span>
|
||||
</span></span></span><span class="code-line line-number" line="3"><span class="token table"><span class="token table-line"></span><span class="token table-data-rows"><span class="token table-data"> 单元格 1 </span><span class="token punctuation">|</span><span class="token table-data"> 居中 </span><span class="token punctuation">|</span><span class="token table-data"> $1600</span>
|
||||
</span></span></span><span class="code-line line-number" line="4"><span class="token table"><span class="token table-data-rows"><span class="token table-data"> 单元格 2 </span><span class="token punctuation">|</span><span class="token table-data"> 单元格 3 </span><span class="token punctuation">|</span><span class="token table-data"> $12</span>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line"><span class="token table"><span class="token table-header-row"><span class="token table-header important"> 左栏 </span><span class="token punctuation">|</span><span class="token table-header important"> 中间栏 </span><span class="token punctuation">|</span><span class="token table-header important"> 右栏</span>
|
||||
</span></span></span><span class="code-line"><span class="token table"><span class="token table-header-row"></span><span class="token table-line"><span class="token punctuation">:----------:</span><span class="token punctuation">|</span><span class="token punctuation">:-------------:</span><span class="token punctuation">|</span><span class="token punctuation">:-----------:</span>
|
||||
</span></span></span><span class="code-line"><span class="token table"><span class="token table-line"></span><span class="token table-data-rows"><span class="token table-data"> 单元格 1 </span><span class="token punctuation">|</span><span class="token table-data"> 居中 </span><span class="token punctuation">|</span><span class="token table-data"> $1600</span>
|
||||
</span></span></span><span class="code-line"><span class="token table"><span class="token table-data-rows"><span class="token table-data"> 单元格 2 </span><span class="token punctuation">|</span><span class="token table-data"> 单元格 3 </span><span class="token punctuation">|</span><span class="token table-data"> $12</span>
|
||||
</span></span></span></code></pre>
|
||||
<p>Markdown 表格生成器:<a href="https://tableconvert.com/">tableconvert.com</a></p>
|
||||
</div></div></div><div class="wrap" style="grid-column: span 2/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-style=grid-column: span 2/span 2;-->
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line line-number" line="1"><span class="token url"><span class="token operator">!</span>[<span class="token content">GitHub Logo</span>](<span class="token url">/images/logo.png</span>)</span>
|
||||
</span><span class="code-line line-number" line="2">
|
||||
</span><span class="code-line line-number" line="3"><span class="token url"><span class="token operator">!</span>[<span class="token content">Alt Text</span>](<span class="token url">url</span>)</span>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line"><span class="token url"><span class="token operator">!</span>[<span class="token content">GitHub Logo</span>](<span class="token url">/images/logo.png</span>)</span>
|
||||
</span><span class="code-line">
|
||||
</span><span class="code-line"><span class="token url"><span class="token operator">!</span>[<span class="token content">Alt Text</span>](<span class="token url">url</span>)</span>
|
||||
</span></code></pre>
|
||||
</div></div><div class="h3wrap-body"><div class="wrap"><div class="wrap-header h4wrap"><h4 id="带链接的图片"><a aria-hidden="true" tabindex="-1" href="#带链接的图片"><span class="icon icon-link"></span></a>带链接的图片</h4><div class="wrap-body">
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line line-number" line="1"><span class="token url">[<span class="token content"></span>](https://github.com/)
|
||||
</span><span class="code-line line-number" line="2">
|
||||
</span><span class="code-line line-number" line="3"><span class="token url">[<span class="token content"></span>](link_url)
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line"><span class="token url">[<span class="token content"></span>](https://github.com/)
|
||||
</span><span class="code-line">
|
||||
</span><span class="code-line"><span class="token url">[<span class="token content"></span>](link_url)
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h4wrap"><h4 id="参考风格"><a aria-hidden="true" tabindex="-1" href="#参考风格"><span class="icon icon-link"></span></a>参考风格</h4><div class="wrap-body">
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line line-number" line="1"><span class="token url"><span class="token operator">!</span>[<span class="token content">alt text</span>][<span class="token variable">logo</span>]</span>
|
||||
</span><span class="code-line line-number" line="2">
|
||||
</span><span class="code-line line-number" line="3"><span class="token url-reference url"><span class="token punctuation">[</span><span class="token variable">logo</span><span class="token punctuation">]</span><span class="token punctuation">:</span> /images/logo.png <span class="token string">"Logo Title"</span></span>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line"><span class="token url"><span class="token operator">!</span>[<span class="token content">alt text</span>][<span class="token variable">logo</span>]</span>
|
||||
</span><span class="code-line">
|
||||
</span><span class="code-line"><span class="token url-reference url"><span class="token punctuation">[</span><span class="token variable">logo</span><span class="token punctuation">]</span><span class="token punctuation">:</span> /images/logo.png <span class="token string">"Logo Title"</span></span>
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap"><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">
|
||||
|
||||
|
@ -189,19 +189,19 @@
|
||||
</div></div></div><div class="wrap col-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=col-span-2-->
|
||||
<p>将某人添加为所有者</p>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1"><span class="token function">npm</span> owner <span class="token function">add</span> USERNAME PACKAGENAME
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token function">npm</span> owner <span class="token function">add</span> USERNAME PACKAGENAME
|
||||
</span></code></pre>
|
||||
<p>列出包</p>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1"><span class="token function">npm</span> <span class="token function">ls</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token function">npm</span> <span class="token function">ls</span>
|
||||
</span></code></pre>
|
||||
<p>向安装旧版本软件包的用户添加警告</p>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1"><span class="token function">npm</span> deprecate PACKAGE@<span class="token string">"< 0.2.0"</span> <span class="token string">"critical bug fixed in v0.2.0"</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token function">npm</span> deprecate PACKAGE@<span class="token string">"< 0.2.0"</span> <span class="token string">"critical bug fixed in v0.2.0"</span>
|
||||
</span></code></pre>
|
||||
<p>更新所有包或选定的包</p>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1"><span class="token function">npm</span> update <span class="token punctuation">[</span>-g<span class="token punctuation">]</span> PACKAGE
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token function">npm</span> update <span class="token punctuation">[</span>-g<span class="token punctuation">]</span> PACKAGE
|
||||
</span></code></pre>
|
||||
<p>检查过时的包</p>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1"><span class="token function">npm</span> outdated <span class="token punctuation">[</span>PACKAGE<span class="token punctuation">]</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token function">npm</span> outdated <span class="token punctuation">[</span>PACKAGE<span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div></div></div><footer class="footer-wrap"><footer class="max-container">© 2022 Kenny Wang, All rights reserved.</footer></footer></body>
|
||||
</html>
|
||||
|
@ -44,9 +44,9 @@
|
||||
<li><a href="https://classic.yarnpkg.com/en/docs/package-json">yarnpkg 文档</a> <em>(yarnpkg.com)</em></li>
|
||||
</ul>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="name"><a aria-hidden="true" tabindex="-1" href="#name"><span class="icon icon-link"></span></a><code>name</code></h3><div class="wrap-body">
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"my-awesome-package"</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"my-awesome-package"</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
<p><strong>规则</strong></p>
|
||||
<ul>
|
||||
@ -56,9 +56,9 @@
|
||||
<li>必须仅使用URL安全字符</li>
|
||||
</ul>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="version"><a aria-hidden="true" tabindex="-1" href="#version"><span class="icon icon-link"></span></a><code>version</code></h3><div class="wrap-body">
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token property">"version"</span><span class="token operator">:</span> <span class="token string">"1.0.0"</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"version"</span><span class="token operator">:</span> <span class="token string">"1.0.0"</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
<p>包的当前版本,严格遵循 <a href="http://semver.org/lang/zh-CN/">Semantic Versioning 2.0.0</a> 语义化版本规范。</p>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="tips"><a aria-hidden="true" tabindex="-1" href="#tips"><span class="icon icon-link"></span></a>Tips</h3><div class="wrap-body">
|
||||
@ -72,34 +72,34 @@
|
||||
<p>如果没有 <code>name</code> 和<code>version</code> 字段,您的包将无法安装</p>
|
||||
</div></div></div><div class="wrap col-span-2"><div class="wrap-header h3wrap"><h3 id="安装-name-包"><a aria-hidden="true" tabindex="-1" href="#安装-name-包"><span class="icon icon-link"></span></a>安装 <code>name</code> 包</h3><div class="wrap-body">
|
||||
<!--rehype:wrap-class=col-span-2-->
|
||||
<pre class="language-sh"><code class="language-sh code-highlight"><span class="code-line line-number" line="1"><span class="token function">yarn</span> <span class="token function">add</span> <span class="token punctuation">[</span>包名<span class="token punctuation">]</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token comment"># or</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token function">npm</span> <span class="token function">install</span> <span class="token punctuation">[</span>包名<span class="token punctuation">]</span>
|
||||
<pre class="language-sh"><code class="language-sh code-highlight"><span class="code-line"><span class="token function">yarn</span> <span class="token function">add</span> <span class="token punctuation">[</span>包名<span class="token punctuation">]</span>
|
||||
</span><span class="code-line"><span class="token comment"># or</span>
|
||||
</span><span class="code-line"><span class="token function">npm</span> <span class="token function">install</span> <span class="token punctuation">[</span>包名<span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
<p>安装后存放位置</p>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1">node_modules/<span class="token punctuation">[</span>包名<span class="token punctuation">]</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">node_modules/<span class="token punctuation">[</span>包名<span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
<p>npmjs 下载地址</p>
|
||||
<pre class="wrap-text"><code class="language-bash code-highlight"><span class="code-line line-number" line="1">https://registry.npmjs.org/<span class="token punctuation">[</span>包名<span class="token punctuation">]</span>/-/<span class="token punctuation">[</span>包名<span class="token punctuation">]</span>-<span class="token punctuation">[</span>version<span class="token punctuation">]</span>.tgz
|
||||
<pre class="wrap-text"><code class="language-bash code-highlight"><span class="code-line">https://registry.npmjs.org/<span class="token punctuation">[</span>包名<span class="token punctuation">]</span>/-/<span class="token punctuation">[</span>包名<span class="token punctuation">]</span>-<span class="token punctuation">[</span>version<span class="token punctuation">]</span>.tgz
|
||||
</span></code></pre>
|
||||
<!--rehype:className=wrap-text-->
|
||||
<p>这是您的 <code>包</code> 的名称。 它在URL中使用,作为参数命令行,以及 <code>node_modules</code> 中的目录名。</p>
|
||||
</div></div></div></div></div><div class="wrap"><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"><div class="wrap-header h3wrap"><h3 id="description"><a aria-hidden="true" tabindex="-1" href="#description"><span class="icon icon-link"></span></a><code>description</code></h3><div class="wrap-body">
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token property">"description"</span><span class="token operator">:</span> <span class="token string">"我的包的概要简短描述"</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"description"</span><span class="token operator">:</span> <span class="token string">"我的包的概要简短描述"</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
<p>帮助使用者了解包的功能的字符串,包管理器也会把这个字符串作为搜索关键词。</p>
|
||||
</div></div></div><div class="wrap col-span-2 row-span-2"><div class="wrap-header h3wrap"><h3 id="license"><a aria-hidden="true" tabindex="-1" href="#license"><span class="icon icon-link"></span></a><code>license</code></h3><div class="wrap-body">
|
||||
<!--rehype:wrap-class=col-span-2 row-span-2-->
|
||||
<p>所有包都应该指定许可证,以便让用户了解他们是在什么授权下使用此包,以及此包还有哪些附加限制。</p>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token property">"license"</span><span class="token operator">:</span> <span class="token string">"MIT"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token property">"license"</span><span class="token operator">:</span> <span class="token string">"(MIT or GPL-3.0)"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token property">"license"</span><span class="token operator">:</span> <span class="token string">"SEE LICENSE IN LICENSE_FILENAME.txt"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="5"> <span class="token property">"license"</span><span class="token operator">:</span> <span class="token string">"UNLICENSED"</span>
|
||||
</span><span class="code-line line-number" line="6"><span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"license"</span><span class="token operator">:</span> <span class="token string">"MIT"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"license"</span><span class="token operator">:</span> <span class="token string">"(MIT or GPL-3.0)"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"license"</span><span class="token operator">:</span> <span class="token string">"SEE LICENSE IN LICENSE_FILENAME.txt"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"license"</span><span class="token operator">:</span> <span class="token string">"UNLICENSED"</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
<p>鼓励使用开源 <a href="https://opensource.org/licenses/alphabetical">(OSI-approved)</a> 许可证,除非你有特别的原因不用它。 如果你开发的包是你工作的一部分,最好和公司讨论后再做决定。</p>
|
||||
<p><strong>license字段必须是以下之一:</strong></p>
|
||||
@ -110,119 +110,119 @@
|
||||
<li>如果你不想在任何条款下授权其他人使用你的私有或未公开的包,一个 <code>UNLICENSED</code> 字符串。</li>
|
||||
</ul>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="keywords"><a aria-hidden="true" tabindex="-1" href="#keywords"><span class="icon icon-link"></span></a><code>keywords</code></h3><div class="wrap-body">
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token property">"keywords"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token string">"short"</span><span class="token punctuation">,</span> <span class="token string">"relevant"</span><span class="token punctuation">,</span> <span class="token string">"keywords"</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token punctuation">]</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"keywords"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
|
||||
</span><span class="code-line"> <span class="token string">"short"</span><span class="token punctuation">,</span> <span class="token string">"relevant"</span><span class="token punctuation">,</span> <span class="token string">"keywords"</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">]</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
<p>一个字符串数组,当在包管理器里搜索包时很有用。</p>
|
||||
</div></div></div></div></div><div class="wrap"><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">
|
||||
<p>各种指向项目文档、issues 上报,以及代码托管网站的链接字段。</p>
|
||||
</div></div><div class="h2wrap-body"><div class="wrap"><div class="wrap-header h3wrap"><h3 id="homepage"><a aria-hidden="true" tabindex="-1" href="#homepage"><span class="icon icon-link"></span></a><code>homepage</code></h3><div class="wrap-body">
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token property">"homepage"</span><span class="token operator">:</span> <span class="token string">"https://your-package.org"</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"homepage"</span><span class="token operator">:</span> <span class="token string">"https://your-package.org"</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
<p>是包的项目主页或者文档首页。</p>
|
||||
</div></div></div><div class="wrap col-span-2 row-span-2"><div class="wrap-header h3wrap"><h3 id="repository"><a aria-hidden="true" tabindex="-1" href="#repository"><span class="icon icon-link"></span></a><code>repository</code></h3><div class="wrap-body">
|
||||
<!--rehype:wrap-class=col-span-2 row-span-2-->
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token property">"repository"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token property">"type"</span><span class="token operator">:</span> <span class="token string">"git"</span><span class="token punctuation">,</span> <span class="token property">"url"</span><span class="token operator">:</span> <span class="token string">"https://github.com/user/repo.git"</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token punctuation">}</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="5"> <span class="token property">"repository"</span><span class="token operator">:</span> <span class="token string">"github:user/repo"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="6"> <span class="token property">"repository"</span><span class="token operator">:</span> <span class="token string">"gitlab:user/repo"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="7"> <span class="token property">"repository"</span><span class="token operator">:</span> <span class="token string">"bitbucket:user/repo"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="8"> <span class="token property">"repository"</span><span class="token operator">:</span> <span class="token string">"gist:a1b2c3d4e5f"</span>
|
||||
</span><span class="code-line line-number" line="9"><span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"repository"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"type"</span><span class="token operator">:</span> <span class="token string">"git"</span><span class="token punctuation">,</span> <span class="token property">"url"</span><span class="token operator">:</span> <span class="token string">"https://github.com/user/repo.git"</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">}</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"repository"</span><span class="token operator">:</span> <span class="token string">"github:user/repo"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"repository"</span><span class="token operator">:</span> <span class="token string">"gitlab:user/repo"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"repository"</span><span class="token operator">:</span> <span class="token string">"bitbucket:user/repo"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"repository"</span><span class="token operator">:</span> <span class="token string">"gist:a1b2c3d4e5f"</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
<p>包的实际代码所在的位置。</p>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="bugs"><a aria-hidden="true" tabindex="-1" href="#bugs"><span class="icon icon-link"></span></a><code>bugs</code></h3><div class="wrap-body">
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token property">"bugs"</span><span class="token operator">:</span> <span class="token string">"https://github.com/user/repo/issues"</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"bugs"</span><span class="token operator">:</span> <span class="token string">"https://github.com/user/repo/issues"</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
<p>问题反馈系统的 URL,或者是 email 地址之类的链接。用户通过该途径向你反馈问题。</p>
|
||||
</div></div></div></div></div><div class="wrap"><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"><div class="wrap-header h3wrap"><h3 id="author"><a aria-hidden="true" tabindex="-1" href="#author"><span class="icon icon-link"></span></a><code>author</code></h3><div class="wrap-body">
|
||||
<p>项目的维护者。</p>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token property">"author"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"Your Name"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token property">"email"</span><span class="token operator">:</span> <span class="token string">"you@xxx.com"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="5"> <span class="token property">"url"</span><span class="token operator">:</span> <span class="token string">"http://your-x.com"</span>
|
||||
</span><span class="code-line line-number" line="6"> <span class="token punctuation">}</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="7"> <span class="token property">"author"</span><span class="token operator">:</span> <span class="token string">"Your Name <you@xxx.com> (http://your-x.com)"</span>
|
||||
</span><span class="code-line line-number" line="8"><span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"author"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"Your Name"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"email"</span><span class="token operator">:</span> <span class="token string">"you@xxx.com"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"url"</span><span class="token operator">:</span> <span class="token string">"http://your-x.com"</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">}</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"author"</span><span class="token operator">:</span> <span class="token string">"Your Name <you@xxx.com> (http://your-x.com)"</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
<p>作者信息,一个人。</p>
|
||||
</div></div></div><div class="wrap col-span-2"><div class="wrap-header h3wrap"><h3 id="contributors"><a aria-hidden="true" tabindex="-1" href="#contributors"><span class="icon icon-link"></span></a><code>contributors</code></h3><div class="wrap-body">
|
||||
<!--rehype:wrap-class=col-span-2-->
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token property">"contributors"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token punctuation">{</span> <span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"Your Friend"</span><span class="token punctuation">,</span> <span class="token property">"email"</span><span class="token operator">:</span> <span class="token string">"friend@xxx.com"</span><span class="token punctuation">,</span> <span class="token property">"url"</span><span class="token operator">:</span> <span class="token string">"http://friends-xx.com"</span> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token punctuation">{</span> <span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"Other Friend"</span><span class="token punctuation">,</span> <span class="token property">"email"</span><span class="token operator">:</span> <span class="token string">"other@xxx.com"</span><span class="token punctuation">,</span> <span class="token property">"url"</span><span class="token operator">:</span> <span class="token string">"http://other-xx.com"</span> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line line-number" line="5"> <span class="token punctuation">]</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="6"> <span class="token property">"contributors"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
|
||||
</span><span class="code-line line-number" line="7"> <span class="token string">"Your Friend <friend@xxx.com> (http://friends-xx.com)"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="8"> <span class="token string">"Other Friend <other@xxx.com> (http://other-xx.com)"</span>
|
||||
</span><span class="code-line line-number" line="9"> <span class="token punctuation">]</span>
|
||||
</span><span class="code-line line-number" line="10"><span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"contributors"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">{</span> <span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"Your Friend"</span><span class="token punctuation">,</span> <span class="token property">"email"</span><span class="token operator">:</span> <span class="token string">"friend@xxx.com"</span><span class="token punctuation">,</span> <span class="token property">"url"</span><span class="token operator">:</span> <span class="token string">"http://friends-xx.com"</span> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">{</span> <span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"Other Friend"</span><span class="token punctuation">,</span> <span class="token property">"email"</span><span class="token operator">:</span> <span class="token string">"other@xxx.com"</span><span class="token punctuation">,</span> <span class="token property">"url"</span><span class="token operator">:</span> <span class="token string">"http://other-xx.com"</span> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">]</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"contributors"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
|
||||
</span><span class="code-line"> <span class="token string">"Your Friend <friend@xxx.com> (http://friends-xx.com)"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token string">"Other Friend <other@xxx.com> (http://other-xx.com)"</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">]</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
<p>贡献者信息,可能很多人。</p>
|
||||
</div></div></div></div></div><div class="wrap"><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">
|
||||
<p>指定包含在项目中的文件,以及项目的入口文件。</p>
|
||||
</div></div><div class="h2wrap-body"><div class="wrap"><div class="wrap-header h3wrap"><h3 id="files"><a aria-hidden="true" tabindex="-1" href="#files"><span class="icon icon-link"></span></a><code>files</code></h3><div class="wrap-body">
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token property">"files"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token string">"filename.js"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token string">"directory/"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="5"> <span class="token string">"glob/*.{js,json}"</span>
|
||||
</span><span class="code-line line-number" line="6"> <span class="token punctuation">]</span>
|
||||
</span><span class="code-line line-number" line="7"><span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"files"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
|
||||
</span><span class="code-line"> <span class="token string">"filename.js"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token string">"directory/"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token string">"glob/*.{js,json}"</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">]</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
<p>项目包含的文件,可以是单独的文件、整个文件夹,或者通配符匹配到的文件。</p>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="main"><a aria-hidden="true" tabindex="-1" href="#main"><span class="icon icon-link"></span></a><code>main</code></h3><div class="wrap-body">
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token property">"main"</span><span class="token operator">:</span> <span class="token string">"filename.js"</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"main"</span><span class="token operator">:</span> <span class="token string">"filename.js"</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
<p>项目的入口文件。</p>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="man"><a aria-hidden="true" tabindex="-1" href="#man"><span class="icon icon-link"></span></a><code>man</code></h3><div class="wrap-body">
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token property">"man"</span><span class="token operator">:</span> <span class="token string">"./man/doc.1"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token property">"man"</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token string">"./man/doc.1"</span><span class="token punctuation">,</span> <span class="token string">"./man/doc.2"</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"man"</span><span class="token operator">:</span> <span class="token string">"./man/doc.1"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"man"</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token string">"./man/doc.1"</span><span class="token punctuation">,</span> <span class="token string">"./man/doc.2"</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
<p>项目的入口文件。</p>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="directories"><a aria-hidden="true" tabindex="-1" href="#directories"><span class="icon icon-link"></span></a><code>directories</code></h3><div class="wrap-body">
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token property">"directories"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token property">"lib"</span><span class="token operator">:</span> <span class="token string">"path/to/lib/"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token property">"bin"</span><span class="token operator">:</span> <span class="token string">"path/to/bin/"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="5"> <span class="token property">"man"</span><span class="token operator">:</span> <span class="token string">"path/to/man/"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="6"> <span class="token property">"doc"</span><span class="token operator">:</span> <span class="token string">"path/to/doc/"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="7"> <span class="token property">"example"</span><span class="token operator">:</span> <span class="token string">"path/to/example/"</span>
|
||||
</span><span class="code-line line-number" line="8"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line line-number" line="9"><span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"directories"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"lib"</span><span class="token operator">:</span> <span class="token string">"path/to/lib/"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"bin"</span><span class="token operator">:</span> <span class="token string">"path/to/bin/"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"man"</span><span class="token operator">:</span> <span class="token string">"path/to/man/"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"doc"</span><span class="token operator">:</span> <span class="token string">"path/to/doc/"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"example"</span><span class="token operator">:</span> <span class="token string">"path/to/example/"</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
<p>当你的包安装时,你可以指定确切的位置来放二进制文件、man pages、文档、例子等。</p>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="bin"><a aria-hidden="true" tabindex="-1" href="#bin"><span class="icon icon-link"></span></a><code>bin</code></h3><div class="wrap-body">
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token property">"bin"</span><span class="token operator">:</span> <span class="token string">"bin.js"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token property">"bin"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token property">"命令名称"</span><span class="token operator">:</span> <span class="token string">"bin/命令路径/命令名称.js"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="5"> <span class="token property">"other-command"</span><span class="token operator">:</span> <span class="token string">"bin/other-command"</span>
|
||||
</span><span class="code-line line-number" line="6"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line line-number" line="7"><span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"bin"</span><span class="token operator">:</span> <span class="token string">"bin.js"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"bin"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"命令名称"</span><span class="token operator">:</span> <span class="token string">"bin/命令路径/命令名称.js"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"other-command"</span><span class="token operator">:</span> <span class="token string">"bin/other-command"</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
<p>随着项目一起被安装的可执行文件。</p>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="types"><a aria-hidden="true" tabindex="-1" href="#types"><span class="icon icon-link"></span></a><code>types</code></h3><div class="wrap-body">
|
||||
<p>这是一个只在 <a href="https://www.typescriptlang.org/docs/handbook/declaration-files/publishing.html">TypeScript</a> 中生效的字段,如果您的包有一个 <code>main.js</code> 文件,您还需要在 <code>package.json</code> 文件中指明主声明文件。 将 <code>types</code> 属性设置为指向 <code>bundled</code> 的声明文件。 例如:</p>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token property">"types"</span><span class="token operator">:</span> <span class="token string">"./lib/main.d.ts"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"types"</span><span class="token operator">:</span> <span class="token string">"./lib/main.d.ts"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
<p>如果您的主声明文件名为 <code>index.d.ts</code> 并且位于包的根目录(<code>index.js</code>旁边),则不需要标记 <code>types</code> 属性,建议这样做。</p>
|
||||
</div></div></div></div></div><div class="wrap"><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">
|
||||
@ -235,37 +235,37 @@
|
||||
<li>大多数 <code>module</code> 用例应该可以通过 <code>esnext</code> 处理。</li>
|
||||
<li><code>browser</code> 可以通过 <code>esnext</code> 的扩展版本来处理</li>
|
||||
</ul>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token property">"main"</span><span class="token operator">:</span> <span class="token string">"main.js"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token property">"esnext"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token property">"main"</span><span class="token operator">:</span> <span class="token string">"main-esnext.js"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="5"> <span class="token property">"browser"</span><span class="token operator">:</span> <span class="token string">"browser-specific-main-esnext.js"</span>
|
||||
</span><span class="code-line line-number" line="6"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line line-number" line="7"><span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"main"</span><span class="token operator">:</span> <span class="token string">"main.js"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"esnext"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"main"</span><span class="token operator">:</span> <span class="token string">"main-esnext.js"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"browser"</span><span class="token operator">:</span> <span class="token string">"browser-specific-main-esnext.js"</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
<p>另请参阅:<a href="http://2ality.com/2017/06/pkg-esnext.html">通过 npm 交付未编译的源代码</a></p>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="module"><a aria-hidden="true" tabindex="-1" href="#module"><span class="icon icon-link"></span></a><code>module</code></h3><div class="wrap-body">
|
||||
<p><code>pkg.module</code> 将指向具有 <code>ES2015</code> 模块语法的模块,但仅指向目标环境支持的语法功能。 完整的描述<a href="https://github.com/rollup/rollup/wiki/pkg.module">在这里</a>。</p>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token property">"module"</span><span class="token operator">:</span> <span class="token string">"dist/my-package.esm.js"</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"module"</span><span class="token operator">:</span> <span class="token string">"dist/my-package.esm.js"</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
<p>支持:<a href="https://github.com/rollup/rollup-plugin-node-resolve">rollup</a>, <a href="https://webpack.js.org/configuration/resolve/#resolve-mainfields">webpack</a></p>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="browser"><a aria-hidden="true" tabindex="-1" href="#browser"><span class="icon icon-link"></span></a><code>browser</code></h3><div class="wrap-body">
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token property">"browser"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token property">"module-a"</span><span class="token operator">:</span> <span class="token string">"./shims/module-a.js"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token property">"./server/only.js"</span><span class="token operator">:</span> <span class="token string">"./shims/client-only.js"</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token property">"browser"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"module-a"</span><span class="token operator">:</span> <span class="token string">"./shims/module-a.js"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"./server/only.js"</span><span class="token operator">:</span> <span class="token string">"./shims/client-only.js"</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
<p>字段由模块作者提供,作为 <code>JavaScript</code> 包或组件工具的提示,用于打包模块以供客户端使用。 提案就<a href="https://github.com/defunctzombie/package-browser-field-spec">在这里</a>。</p>
|
||||
</div></div></div></div></div><div class="wrap"><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">
|
||||
<p>包里还可以包含一些可执行脚本或者其他配置信息。</p>
|
||||
</div></div><div class="h2wrap-body"><div class="wrap"><div class="wrap-header h3wrap"><h3 id="scripts"><a aria-hidden="true" tabindex="-1" href="#scripts"><span class="icon icon-link"></span></a><code>scripts</code></h3><div class="wrap-body">
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token property">"scripts"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token property">"build-project"</span><span class="token operator">:</span> <span class="token string">"node build-project.js"</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"scripts"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"build-project"</span><span class="token operator">:</span> <span class="token string">"node build-project.js"</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
<p>脚本是定义自动化开发相关任务的好方法,比如使用一些简单的构建过程或开发工具。 在 <code>scripts</code> 字段里定义的脚本,可以通过 <code>yarn run <script></code> 命令来执行。 例如,上述 <code>build-project</code> 脚本可以通过 <code>yarn run build-project</code> 调用,并执行 <code>node build-project.js</code>。</p>
|
||||
<p>有一些特殊的脚本名称。 如果定义了 <code>preinstall</code> 脚本,它会在包安装前被调用。 出于兼容性考虑,<code>install</code>、<code>postinstall</code> 和 <code>prepublish</code> 脚本会在包完成安装后被调用。</p>
|
||||
@ -296,18 +296,18 @@
|
||||
</ul>
|
||||
<p>参考文档:<a href="https://docs.npmjs.com/misc/scripts">npm docs</a>.</p>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="config"><a aria-hidden="true" tabindex="-1" href="#config"><span class="icon icon-link"></span></a><code>config</code></h3><div class="wrap-body">
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token property">"config"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token property">"port"</span><span class="token operator">:</span> <span class="token string">"8080"</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"config"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"port"</span><span class="token operator">:</span> <span class="token string">"8080"</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
<p>配置你的脚本的选项或参数。</p>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token property">"scripts"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token property">"run"</span><span class="token operator">:</span> <span class="token string">"echo $npm_package_config_port"</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"scripts"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"run"</span><span class="token operator">:</span> <span class="token string">"echo $npm_package_config_port"</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
<p>配置中的键作为环境变量公开给脚本(scripts)。</p>
|
||||
</div></div></div></div></div><div class="wrap"><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">
|
||||
@ -315,164 +315,164 @@
|
||||
</div></div><div class="h2wrap-body"><div class="wrap col-span-2 row-span-2"><div class="wrap-header h3wrap"><h3 id="dependencies"><a aria-hidden="true" tabindex="-1" href="#dependencies"><span class="icon icon-link"></span></a><code>dependencies</code></h3><div class="wrap-body">
|
||||
<!--rehype:wrap-class=col-span-2 row-span-2-->
|
||||
<p>这些是你的包的开发版和发布版都需要的依赖。</p>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token property">"dependencies"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token property">"colors"</span><span class="token operator">:</span> <span class="token string">"*"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token property">"foo"</span><span class="token operator">:</span> <span class="token string">"1.0.0 - 2.9999.9999"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="5"> <span class="token property">"bar"</span><span class="token operator">:</span> <span class="token string">">=1.0.2 <2.1.2"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="6"> <span class="token property">"baz"</span><span class="token operator">:</span> <span class="token string">">1.0.2 <=2.3.4"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="7"> <span class="token property">"boo"</span><span class="token operator">:</span> <span class="token string">"2.0.1"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="8"> <span class="token property">"qux"</span><span class="token operator">:</span> <span class="token string">"<1.0.0 || >=2.3.1 <2.4.5 || >=2.5.2 <3.0.0"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="9"> <span class="token property">"asd"</span><span class="token operator">:</span> <span class="token string">"http://asdf.com/asdf.tar.gz"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="10"> <span class="token property">"til"</span><span class="token operator">:</span> <span class="token string">"~1.2"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="11"> <span class="token property">"elf"</span><span class="token operator">:</span> <span class="token string">"~1.2.3"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="12"> <span class="token property">"two"</span><span class="token operator">:</span> <span class="token string">"2.x"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="13"> <span class="token property">"thr"</span><span class="token operator">:</span> <span class="token string">"3.3.x"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="14"> <span class="token property">"lat"</span><span class="token operator">:</span> <span class="token string">"latest"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="15"> <span class="token property">"dyl"</span><span class="token operator">:</span> <span class="token string">"file:./path/to/dyl"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="16"> <span class="token property">"pla"</span><span class="token operator">:</span> <span class="token string">"https://github.com/user/project/tarball/branch"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="17"> <span class="token property">"stu"</span><span class="token operator">:</span> <span class="token string">"git://github.com/user/project.git#commit-ish"</span>
|
||||
</span><span class="code-line line-number" line="18"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line line-number" line="19"><span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"dependencies"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"colors"</span><span class="token operator">:</span> <span class="token string">"*"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"foo"</span><span class="token operator">:</span> <span class="token string">"1.0.0 - 2.9999.9999"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"bar"</span><span class="token operator">:</span> <span class="token string">">=1.0.2 <2.1.2"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"baz"</span><span class="token operator">:</span> <span class="token string">">1.0.2 <=2.3.4"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"boo"</span><span class="token operator">:</span> <span class="token string">"2.0.1"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"qux"</span><span class="token operator">:</span> <span class="token string">"<1.0.0 || >=2.3.1 <2.4.5 || >=2.5.2 <3.0.0"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"asd"</span><span class="token operator">:</span> <span class="token string">"http://asdf.com/asdf.tar.gz"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"til"</span><span class="token operator">:</span> <span class="token string">"~1.2"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"elf"</span><span class="token operator">:</span> <span class="token string">"~1.2.3"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"two"</span><span class="token operator">:</span> <span class="token string">"2.x"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"thr"</span><span class="token operator">:</span> <span class="token string">"3.3.x"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"lat"</span><span class="token operator">:</span> <span class="token string">"latest"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"dyl"</span><span class="token operator">:</span> <span class="token string">"file:./path/to/dyl"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"pla"</span><span class="token operator">:</span> <span class="token string">"https://github.com/user/project/tarball/branch"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"stu"</span><span class="token operator">:</span> <span class="token string">"git://github.com/user/project.git#commit-ish"</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
<p>你可以指定一个确切的版本、一个最小的版本 (比如 <code>>=</code>) 或者一个版本范围 (比如 <code>>= ... <</code>)。 包也可以指向本地的一个目录文件夹。
|
||||
参考文档:<a href="https://docs.npmjs.com/cli/v8/configuring-npm/package-json#dependencies">npm docs</a>.</p>
|
||||
</div></div></div><div class="wrap row-span-2"><div class="wrap-header h3wrap"><h3 id="workspaces"><a aria-hidden="true" tabindex="-1" href="#workspaces"><span class="icon icon-link"></span></a>workspaces</h3><div class="wrap-body">
|
||||
<!--rehype:wrap-class=row-span-2-->
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"my-workspaces-powered-project"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token property">"workspaces"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token string">"./pkg/*"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="5"> <span class="token string">"packages/a"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="6"> <span class="token string">"packages/b"</span>
|
||||
</span><span class="code-line line-number" line="7"> <span class="token punctuation">]</span>
|
||||
</span><span class="code-line line-number" line="8"><span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"my-workspaces-powered-project"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"workspaces"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
|
||||
</span><span class="code-line"> <span class="token string">"./pkg/*"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token string">"packages/a"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token string">"packages/b"</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">]</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
<p>支持从单个顶级根包中管理本地文件系统中的多个包。</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">├┈┈ node_modules
|
||||
</span><span class="code-line line-number" line="2">┆ ├┈┈ a -<span class="token operator">></span> <span class="token punctuation">..</span>/packages/a
|
||||
</span><span class="code-line line-number" line="3">┆ ╰┈┈ b -<span class="token operator">></span> <span class="token punctuation">..</span>/packages/b
|
||||
</span><span class="code-line line-number" line="4">├┈┈ package-lock.json
|
||||
</span><span class="code-line line-number" line="5">├┈┈ package.json
|
||||
</span><span class="code-line line-number" line="6">╰┈┈ packages
|
||||
</span><span class="code-line line-number" line="7"> ├┈┈ a
|
||||
</span><span class="code-line line-number" line="8"> ┆ ╰┈┈ package.json
|
||||
</span><span class="code-line line-number" line="9"> ├┈┈ b
|
||||
</span><span class="code-line line-number" line="10"> ┆ ╰┈┈ package.json
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">├┈┈ node_modules
|
||||
</span><span class="code-line">┆ ├┈┈ a -<span class="token operator">></span> <span class="token punctuation">..</span>/packages/a
|
||||
</span><span class="code-line">┆ ╰┈┈ b -<span class="token operator">></span> <span class="token punctuation">..</span>/packages/b
|
||||
</span><span class="code-line">├┈┈ package-lock.json
|
||||
</span><span class="code-line">├┈┈ package.json
|
||||
</span><span class="code-line">╰┈┈ packages
|
||||
</span><span class="code-line"> ├┈┈ a
|
||||
</span><span class="code-line"> ┆ ╰┈┈ package.json
|
||||
</span><span class="code-line"> ├┈┈ b
|
||||
</span><span class="code-line"> ┆ ╰┈┈ package.json
|
||||
</span></code></pre>
|
||||
<p>参考文档:<a href="https://docs.npmjs.com/cli/v8/using-npm/workspaces">workspaces</a></p>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="devdependencies"><a aria-hidden="true" tabindex="-1" href="#devdependencies"><span class="icon icon-link"></span></a><code>devDependencies</code></h3><div class="wrap-body">
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token property">"devDependencies"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token property">"package-2"</span><span class="token operator">:</span> <span class="token string">"^0.4.2"</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"devDependencies"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"package-2"</span><span class="token operator">:</span> <span class="token string">"^0.4.2"</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
<p>这些是只在你的包开发期间需要,但是生产环境不会被安装的包。</p>
|
||||
</div></div></div><div class="wrap col-span-2"><div class="wrap-header h3wrap"><h3 id="peerdependencies"><a aria-hidden="true" tabindex="-1" href="#peerdependencies"><span class="icon icon-link"></span></a><code>peerDependencies</code></h3><div class="wrap-body">
|
||||
<!--rehype:wrap-class=col-span-2-->
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token property">"peerDependencies"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token property">"package-3"</span><span class="token operator">:</span> <span class="token string">"^2.7.18"</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"peerDependencies"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"package-3"</span><span class="token operator">:</span> <span class="token string">"^2.7.18"</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
<p>平行依赖允许你说明你的包和其他包版本的兼容性。添加可选设置以消除丢失的对等依赖性警告,<a href="https://github.com/yarnpkg/yarn/pull/6671">#6671</a> 。</p>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="optionaldependencies"><a aria-hidden="true" tabindex="-1" href="#optionaldependencies"><span class="icon icon-link"></span></a><code>optionalDependencies</code></h3><div class="wrap-body">
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token property">"optionalDependencies"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token property">"package-5"</span><span class="token operator">:</span> <span class="token string">"^1.6.1"</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"optionalDependencies"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"package-5"</span><span class="token operator">:</span> <span class="token string">"^1.6.1"</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
<p>可选依赖可以用于你的包,但不是必需的。如果可选包没有找到,安装还可以继续。</p>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="bundleddependencies"><a aria-hidden="true" tabindex="-1" href="#bundleddependencies"><span class="icon icon-link"></span></a><code>bundledDependencies</code></h3><div class="wrap-body">
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token property">"bundledDependencies"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token string">"package-4"</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token punctuation">]</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"bundledDependencies"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
|
||||
</span><span class="code-line"> <span class="token string">"package-4"</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">]</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
<p>打包依赖是发布你的包时将会一起打包的一个包名数组。</p>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="peerdependenciesmeta"><a aria-hidden="true" tabindex="-1" href="#peerdependenciesmeta"><span class="icon icon-link"></span></a><code>peerDependenciesMeta</code></h3><div class="wrap-body">
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token property">"peerDependenciesMeta"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token property">"node-sass"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token property">"optional"</span><span class="token operator">:</span> <span class="token boolean">true</span>
|
||||
</span><span class="code-line line-number" line="5"> <span class="token punctuation">}</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="6"> <span class="token property">"sass"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="7"> <span class="token property">"optional"</span><span class="token operator">:</span> <span class="token boolean">true</span>
|
||||
</span><span class="code-line line-number" line="8"> <span class="token punctuation">}</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="9"> <span class="token property">"fibers"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="10"> <span class="token property">"optional"</span><span class="token operator">:</span> <span class="token boolean">true</span>
|
||||
</span><span class="code-line line-number" line="11"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line line-number" line="12"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line line-number" line="13"><span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"peerDependenciesMeta"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"node-sass"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"optional"</span><span class="token operator">:</span> <span class="token boolean">true</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">}</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"sass"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"optional"</span><span class="token operator">:</span> <span class="token boolean">true</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">}</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"fibers"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"optional"</span><span class="token operator">:</span> <span class="token boolean">true</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap"><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">
|
||||
<p>你可以提供和你的包关联的系统级的信息,比如操作系统兼容性之类。</p>
|
||||
</div></div><div class="h2wrap-body"><div class="wrap col-span-2 row-span-2"><div class="wrap-header h3wrap"><h3 id="engines"><a aria-hidden="true" tabindex="-1" href="#engines"><span class="icon icon-link"></span></a><code>engines</code></h3><div class="wrap-body">
|
||||
<!--rehype:wrap-class=col-span-2 row-span-2-->
|
||||
<p>指定使用你的包客户必须使用的版本,这将检查 <code>process.versions</code> 以及当前 <code>yarn</code> 版本。</p>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token property">"engines"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token property">"node"</span><span class="token operator">:</span> <span class="token string">"^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token property">"node"</span><span class="token operator">:</span> <span class="token string">">=4.4.7 <7.0.0"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="5"> <span class="token property">"zlib"</span><span class="token operator">:</span> <span class="token string">"^1.2.8"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="6"> <span class="token property">"yarn"</span><span class="token operator">:</span> <span class="token string">"^0.14.0"</span>
|
||||
</span><span class="code-line line-number" line="7"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line line-number" line="8"><span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"engines"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"node"</span><span class="token operator">:</span> <span class="token string">"^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"node"</span><span class="token operator">:</span> <span class="token string">">=4.4.7 <7.0.0"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"zlib"</span><span class="token operator">:</span> <span class="token string">"^1.2.8"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"yarn"</span><span class="token operator">:</span> <span class="token string">"^0.14.0"</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
<p>此检查遵守正常的 <a href="http://semver.org/lang/zh-CN/">semver</a> 规则,但有一个例外。 它允许预发布版本匹配未明确指定预发布的 <a href="http://semver.org/lang/zh-CN/">semver</a>。 例如,<code>1.4.0-rc.0</code> 匹配 <code>>=1.3.0</code>,但它与典型的 <code>semver</code> 检查不匹配。</p>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="os"><a aria-hidden="true" tabindex="-1" href="#os"><span class="icon icon-link"></span></a><code>os</code></h3><div class="wrap-body">
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token property">"os"</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token string">"darwin"</span><span class="token punctuation">,</span> <span class="token string">"linux"</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token property">"os"</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token string">"!win32"</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"os"</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token string">"darwin"</span><span class="token punctuation">,</span> <span class="token string">"linux"</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"os"</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token string">"!win32"</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
<p>此选项指定你的包的操作系统兼容性,它会检查 <code>process.platform</code>。</p>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="cpu"><a aria-hidden="true" tabindex="-1" href="#cpu"><span class="icon icon-link"></span></a><code>cpu</code></h3><div class="wrap-body">
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token property">"cpu"</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token string">"x64"</span><span class="token punctuation">,</span> <span class="token string">"ia32"</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token property">"cpu"</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token string">"!arm"</span><span class="token punctuation">,</span> <span class="token string">"!mips"</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"cpu"</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token string">"x64"</span><span class="token punctuation">,</span> <span class="token string">"ia32"</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"cpu"</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token string">"!arm"</span><span class="token punctuation">,</span> <span class="token string">"!mips"</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
<p>使用这个选项指定你的包将只能在某些 CPU 体系架构上运行,这会检查 <code>process.arch</code>。</p>
|
||||
</div></div></div></div></div><div class="wrap"><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"><div class="wrap-header h3wrap"><h3 id="private"><a aria-hidden="true" tabindex="-1" href="#private"><span class="icon icon-link"></span></a><code>private</code></h3><div class="wrap-body">
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token property">"private"</span><span class="token operator">:</span> <span class="token boolean">true</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"private"</span><span class="token operator">:</span> <span class="token boolean">true</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
<p>如果你不想你的包发布到包管理器(npm 或者 私有包管理),设置为 <code>true</code>。</p>
|
||||
</div></div></div><div class="wrap col-span-2"><div class="wrap-header h3wrap"><h3 id="publishconfig"><a aria-hidden="true" tabindex="-1" href="#publishconfig"><span class="icon icon-link"></span></a><code>publishConfig</code></h3><div class="wrap-body">
|
||||
<!--rehype:wrap-class=col-span-2-->
|
||||
<p>这些配置值将在你的包发布时使用。比如,你可以给包打标签。</p>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token property">"publishConfig"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token property">"registry"</span><span class="token operator">:</span> <span class="token string">"https://registry.npm.taobao.org"</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"publishConfig"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"registry"</span><span class="token operator">:</span> <span class="token string">"https://registry.npm.taobao.org"</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
<p>这是一组将在发布时使用的配置值。 如果要设置标记,注册表或访问权限,则特别方便,以便确保给定的包未标记为 <code>latest</code>,发布到全局公共 <code>registry</code> 或默认情况下,作用域模块(@scoped)是私有的。</p>
|
||||
<p>可以覆盖任何配置值,但只有 <code>tag</code>,<code>registry</code> 和 <code>access</code> 可能对于发布而言很重要,<a href="https://docs.npmjs.com/misc/config#config-settings">npm-config</a>。</p>
|
||||
</div></div></div></div></div><div class="wrap"><div class="wrap-header h2wrap"><h2 id="yarn"><a aria-hidden="true" tabindex="-1" href="#yarn"><span class="icon icon-link"></span></a>Yarn</h2><div class="wrap-body">
|
||||
</div></div><div class="h2wrap-body"><div class="wrap"><div class="wrap-header h3wrap"><h3 id="flat"><a aria-hidden="true" tabindex="-1" href="#flat"><span class="icon icon-link"></span></a><code>flat</code></h3><div class="wrap-body">
|
||||
<p>如果你的包只允许给定依赖的一个版本,你想强制和命令行上 <a href="#">yarn install --flat</a> 相同的行为,把这个值设为 <code>true</code>。</p>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token property">"flat"</span><span class="token operator">:</span> <span class="token boolean">true</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"flat"</span><span class="token operator">:</span> <span class="token boolean">true</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
<p>请注意,如果你的 <code>package.json</code> 包含 <code>"flat": true</code> 并且其它包依赖你的包 (比如你在构建一个库,而不是应用), 其它那些包也需要在它们的 <code>package.json</code> 加上 <code>"flat": true</code>,或者在命令行上用 <code>yarn install --flat</code> 安装。</p>
|
||||
</div></div></div><div class="wrap col-span-2"><div class="wrap-header h3wrap"><h3 id="resolutions"><a aria-hidden="true" tabindex="-1" href="#resolutions"><span class="icon icon-link"></span></a><code>resolutions</code></h3><div class="wrap-body">
|
||||
<!--rehype:wrap-class=col-span-2-->
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token property">"resolutions"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token property">"transitive-package-1"</span><span class="token operator">:</span> <span class="token string">"0.0.29"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token property">"transitive-package-2"</span><span class="token operator">:</span> <span class="token string">"file:./local-forks/transitive-package-2"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="5"> <span class="token property">"dependencies-package-1/transitive-package-3"</span><span class="token operator">:</span> <span class="token string">"^2.1.1"</span>
|
||||
</span><span class="code-line line-number" line="6"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line line-number" line="7"><span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"resolutions"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"transitive-package-1"</span><span class="token operator">:</span> <span class="token string">"0.0.29"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"transitive-package-2"</span><span class="token operator">:</span> <span class="token string">"file:./local-forks/transitive-package-2"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"dependencies-package-1/transitive-package-3"</span><span class="token operator">:</span> <span class="token string">"^2.1.1"</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
<p>允许您覆盖特定嵌套依赖项的版本。 有关完整规范,请参见<a href="https://github.com/yarnpkg/rfcs/blob/master/implemented/0000-selective-versions-resolutions.md">选择性版本解析 RFC</a>。</p>
|
||||
<p>注意,<code>yarn install --flat</code> 命令将会自动在 <code>package.json</code> 文件里加入 <code>resolutions</code> 字段。</p>
|
||||
|
@ -40,22 +40,22 @@
|
||||
</div></div><div class="h2wrap-body"><div class="wrap"><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">
|
||||
<p>简单的将仓库克隆下来本地调试页面展示。</p>
|
||||
</div></div><div class="h3wrap-body"><div class="wrap"><div class="wrap-header h4wrap"><h4 id="克隆仓库"><a aria-hidden="true" tabindex="-1" href="#克隆仓库"><span class="icon icon-link"></span></a>克隆仓库</h4><div class="wrap-body">
|
||||
<pre class="wrap-text "><code class="language-shell code-highlight"><span class="code-line line-number" line="1"><span class="token function">git</span> clone git@github.com:jaywcjlove/reference.git
|
||||
<pre class="wrap-text "><code class="language-shell code-highlight"><span class="code-line"><span class="token function">git</span> clone git@github.com:jaywcjlove/reference.git
|
||||
</span></code></pre>
|
||||
<!--rehype:className=wrap-text -->
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h4wrap"><h4 id="安装依赖编译生成-html-页面"><a aria-hidden="true" tabindex="-1" href="#安装依赖编译生成-html-页面"><span class="icon icon-link"></span></a>安装依赖编译生成 HTML 页面</h4><div class="wrap-body">
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1"><span class="token function">npm</span> i <span class="token comment"># 安装依赖</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token function">npm</span> run build <span class="token comment"># 编译输出 HTML</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token function">npm</span> run start <span class="token comment"># 监听 md 文件编译输出 HTML</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line"><span class="token function">npm</span> i <span class="token comment"># 安装依赖</span>
|
||||
</span><span class="code-line"><span class="token function">npm</span> run build <span class="token comment"># 编译输出 HTML</span>
|
||||
</span><span class="code-line"><span class="token function">npm</span> run start <span class="token comment"># 监听 md 文件编译输出 HTML</span>
|
||||
</span></code></pre>
|
||||
<p>HTML 存放在仓库根目录下的 <code>dist</code> 目录中,将 <code>dist/index.html</code> 静态页面在浏览器中打开预览。</p>
|
||||
</div></div></div></div></div><div class="wrap"><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">
|
||||
<p>在备忘清单采用 <code>HTML 注释语法</code>,标识网站布局和一些样式,目的是为了在 <code>GitHub</code> 中也是正常毫无瑕疵的预览 <code>Markdown</code>。</p>
|
||||
<pre class="wrap-text "><code class="language-markdown code-highlight"><span class="code-line line-number" line="1"><span class="token title important"><span class="token punctuation">###</span> 卡片标题</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token comment"><!--rehype:wrap-class=col-span-2--></span>
|
||||
</span><span class="code-line line-number" line="3">
|
||||
</span><span class="code-line line-number" line="4">卡片 Markdown 内容展示,下面注释语法为文字内容改变样式
|
||||
</span><span class="code-line line-number" line="5"><span class="token comment"><!--rehype:style=color: red;--></span>
|
||||
<pre class="wrap-text "><code class="language-markdown code-highlight"><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> 卡片标题</span>
|
||||
</span><span class="code-line"><span class="token comment"><!--rehype:wrap-class=col-span-2--></span>
|
||||
</span><span class="code-line">
|
||||
</span><span class="code-line">卡片 Markdown 内容展示,下面注释语法为文字内容改变样式
|
||||
</span><span class="code-line"><span class="token comment"><!--rehype:style=color: red;--></span>
|
||||
</span></code></pre>
|
||||
<!--rehype:className=wrap-text -->
|
||||
<p>使用 <code>col-span-2</code> 类标识,卡片占 <code>2</code> 列位置</p>
|
||||
@ -70,15 +70,15 @@
|
||||
<p><code><!--rehype:</code> + <code>key=value</code> + <code>&</code> + <code>key=value</code> + <code>--></code><br>
|
||||
<code>标识开始</code> + <code>参数</code> + <code>分隔符</code> + <code>参数</code> + <code>标识结束</code></p>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h4wrap"><h4 id="示例"><a aria-hidden="true" tabindex="-1" href="#示例"><span class="icon icon-link"></span></a>示例</h4><div class="wrap-body">
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line line-number" line="1"><span class="token title important"><span class="token punctuation">###</span> H2 部分</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token comment"><!--rehype:body-class=cols-2--></span>
|
||||
</span><span class="code-line line-number" line="3">
|
||||
</span><span class="code-line line-number" line="4"><span class="token title important"><span class="token punctuation">###</span> H3 部分</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token comment"><!--rehype:wrap-class=row-span-2--></span>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> H2 部分</span>
|
||||
</span><span class="code-line"><span class="token comment"><!--rehype:body-class=cols-2--></span>
|
||||
</span><span class="code-line">
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> H3 部分</span>
|
||||
</span><span class="code-line"><span class="token comment"><!--rehype:wrap-class=row-span-2--></span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h4wrap"><h4 id="示例三行占位标题红色"><a aria-hidden="true" tabindex="-1" href="#示例三行占位标题红色"><span class="icon icon-link"></span></a>示例,三行占位,标题红色</h4><div class="wrap-body">
|
||||
<pre class="wrap-text "><code class="language-markdown code-highlight"><span class="code-line line-number" line="1"><span class="token title important"><span class="token punctuation">###</span> 标题</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token comment"><!--rehype:wrap-class=row-span-3&style=color:red;--></span>
|
||||
<pre class="wrap-text "><code class="language-markdown code-highlight"><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> 标题</span>
|
||||
</span><span class="code-line"><span class="token comment"><!--rehype:wrap-class=row-span-3&style=color:red;--></span>
|
||||
</span></code></pre>
|
||||
<!--rehype:className=wrap-text -->
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h4wrap"><h4 id="参数说明"><a aria-hidden="true" tabindex="-1" href="#参数说明"><span class="icon icon-link"></span></a>参数说明</h4><div class="wrap-body">
|
||||
@ -109,44 +109,57 @@
|
||||
|
||||
<table><thead><tr><th>类</th><th>说明</th></tr></thead><tbody><tr><td><code>body-style</code></td><td>包裹所有卡片<code>外壳</code>的样式</td></tr><tr><td><code>body-class</code></td><td>用于卡片栏布局,添加<code>类</code>名</td></tr><tr><td><code>wrap-style</code></td><td>卡片栏添加 CSS 样式</td></tr><tr><td><code>wrap-class</code></td><td>用于卡片占位,添加<code>类</code>名</td></tr></tbody></table>
|
||||
</div></div></div></div></div><div class="wrap"><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-markdown"><code class="language-markdown code-highlight"><span class="code-line line-number" line="1"><span class="token italic"><span class="token punctuation">_</span><span class="token content">我是红色</span><span class="token punctuation">_</span></span><span class="token comment"><!--rehype:style=color: red;--></span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token bold"><span class="token punctuation">**</span><span class="token content">加粗红色</span><span class="token punctuation">**</span></span><span class="token comment"><!--rehype:style=color: red;--></span>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line"><span class="token italic"><span class="token punctuation">_</span><span class="token content">我是红色</span><span class="token punctuation">_</span></span><span class="token comment"><!--rehype:style=color: red;--></span>
|
||||
</span><span class="code-line"><span class="token bold"><span class="token punctuation">**</span><span class="token content">加粗红色</span><span class="token punctuation">**</span></span><span class="token comment"><!--rehype:style=color: red;--></span>
|
||||
</span></code></pre>
|
||||
<p>上面添加注释样式,文字 <em style="color: red;">我是红色</em><!--rehype:style=color: red;--> 文字变<code>红</code>了</p>
|
||||
</div></div></div><div class="wrap"><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="wrap-text "><code class="language-markdown code-highlight"><span class="code-line line-number" line="1"><span class="token bold"><span class="token punctuation">**</span><span class="token content">加粗变大红色</span><span class="token punctuation">**</span></span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token comment"><!--rehype:style=color: red;font-size: 18px--></span>
|
||||
<pre class="wrap-text "><code class="language-markdown code-highlight"><span class="code-line"><span class="token bold"><span class="token punctuation">**</span><span class="token content">加粗变大红色</span><span class="token punctuation">**</span></span>
|
||||
</span><span class="code-line"><span class="token comment"><!--rehype:style=color: red;font-size: 18px--></span>
|
||||
</span></code></pre>
|
||||
<!--rehype:className=wrap-text -->
|
||||
<p>上面添加注释样式,文字 <em style="color: red;font-size: 18px">加粗变大红色</em><!--rehype:style=color: red;font-size: 18px--> 变<code>红</code>并且<code>大</code>了</p>
|
||||
</div></div></div><div class="wrap"><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-markdown"><code class="language-markdown code-highlight"><span class="code-line line-number" line="1">\```js
|
||||
</span><span class="code-line line-number" line="2">function () {}
|
||||
</span><span class="code-line line-number" line="3">\```
|
||||
</span><span class="code-line line-number" line="4"><span class="token comment"><!--rehype:className=wrap-text --></span>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line">\```js
|
||||
</span><span class="code-line">function () {}
|
||||
</span><span class="code-line">\```
|
||||
</span><span class="code-line"><span class="token comment"><!--rehype:className=wrap-text --></span>
|
||||
</span></code></pre>
|
||||
<p>如果代码块内容太长,使用强制换行类解决</p>
|
||||
</div></div></div><div class="wrap"><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-markdown"><code class="language-markdown code-highlight"><span class="code-line line-number" line="1"><span class="token table"><span class="token table-header-row"><span class="token punctuation">|</span><span class="token table-header important"> Key </span><span class="token punctuation">|</span><span class="token table-header important"> value </span><span class="token punctuation">|</span><span class="token table-header important"> </span>
|
||||
</span></span></span><span class="code-line line-number" line="2"><span class="token table"><span class="token table-header-row"></span><span class="token table-line"><span class="token punctuation">|</span> <span class="token punctuation">----</span> <span class="token punctuation">|</span> <span class="token punctuation">----</span> <span class="token punctuation">|</span>
|
||||
</span></span></span><span class="code-line line-number" line="3"><span class="token table"><span class="token table-line"></span><span class="token table-data-rows"><span class="token punctuation">|</span><span class="token table-data"> <span class="token code-snippet code keyword">`键`</span> </span><span class="token punctuation">|</span><span class="token table-data"> 值 </span><span class="token punctuation">|</span>
|
||||
</span></span></span><span class="code-line line-number" line="4"><span class="token table"><span class="token table-data-rows"></span></span><span class="token comment"><!--rehype:className=show-header--></span>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line"><span class="token table"><span class="token table-header-row"><span class="token punctuation">|</span><span class="token table-header important"> Key </span><span class="token punctuation">|</span><span class="token table-header important"> value </span><span class="token punctuation">|</span><span class="token table-header important"> </span>
|
||||
</span></span></span><span class="code-line"><span class="token table"><span class="token table-header-row"></span><span class="token table-line"><span class="token punctuation">|</span> <span class="token punctuation">----</span> <span class="token punctuation">|</span> <span class="token punctuation">----</span> <span class="token punctuation">|</span>
|
||||
</span></span></span><span class="code-line"><span class="token table"><span class="token table-line"></span><span class="token table-data-rows"><span class="token punctuation">|</span><span class="token table-data"> <span class="token code-snippet code keyword">`键`</span> </span><span class="token punctuation">|</span><span class="token table-data"> 值 </span><span class="token punctuation">|</span>
|
||||
</span></span></span><span class="code-line"><span class="token table"><span class="token table-data-rows"></span></span><span class="token comment"><!--rehype:className=show-header--></span>
|
||||
</span></code></pre>
|
||||
<p>注释配置添加 <code>show-header</code> 类,放置在表格下面,表头将被展示出来。</p>
|
||||
</div></div></div><div class="wrap 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-jsx"><code class="language-jsx code-highlight"><span class="code-line highlight-line"><span class="token keyword module">import</span> <span class="token imports"><span class="token maybe-class-name">React</span></span> <span class="token keyword module">from</span> <span class="token string">"react"</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token keyword module">import</span> <span class="token string">"./Student.css"</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line">
|
||||
</span><span class="code-line highlight-line"><span class="token keyword module">export</span> <span class="token keyword">const</span> <span class="token maybe-class-name">Student</span> <span class="token operator">=</span> <span class="token punctuation">(</span>
|
||||
</span><span class="code-line highlight-line"> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">className</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Student<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
|
||||
</span><span class="code-line"><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span></code></pre>
|
||||
<p>上面 <code>{1,4-5}</code> 行代码高亮,下面是 <code>Markdown</code> 代码示例</p>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line"> ```jsx {1,4-5}
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="tooltips"><a aria-hidden="true" tabindex="-1" href="#tooltips"><span class="icon icon-link"></span></a>Tooltips</h3><div class="wrap-body">
|
||||
<p><a href="https://github.com/jaywcjlove/reference" class="tooltip">鼠标移动到上面有提示<em class="tooltiptext">Tooltips 的提示内容</em></a></p>
|
||||
<p>添加注释配置 <code><!--rehype:tooltips--></code> 添加一个 Tooltips 提示。</p>
|
||||
</div></div></div><div class="wrap" style="background: #00c69357;"><div class="wrap-header h3wrap"><h3 id="h3-部分卡片背景颜色"><a aria-hidden="true" tabindex="-1" href="#h3-部分卡片背景颜色"><span class="icon icon-link"></span></a>H3 部分(卡片)背景颜色</h3><div class="wrap-body">
|
||||
<!--rehype:wrap-style=background: #00c69357;-->
|
||||
<pre class="wrap-text "><code class="language-markdown code-highlight"><span class="code-line line-number" line="1"><span class="token title important"><span class="token punctuation">###</span> H3 部分(卡片)背景颜色</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token comment"><!--rehype:wrap-style=background: #00c69357;--></span>
|
||||
<pre class="wrap-text "><code class="language-markdown code-highlight"><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> H3 部分(卡片)背景颜色</span>
|
||||
</span><span class="code-line"><span class="token comment"><!--rehype:wrap-style=background: #00c69357;--></span>
|
||||
</span></code></pre>
|
||||
<!--rehype:className=wrap-text -->
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 style="background:#e91e63;" id="红色标题"><a aria-hidden="true" tabindex="-1" href="#红色标题"><span class="icon icon-link"></span></a>红色标题</h3><div class="wrap-body">
|
||||
<!--rehype:style=background:#e91e63;-->
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line line-number" line="1"><span class="token title important"><span class="token punctuation">###</span> 红色标题</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token comment"><!--rehype:style=background:#e91e63;--></span>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> 红色标题</span>
|
||||
</span><span class="code-line"><span class="token comment"><!--rehype:style=background:#e91e63;--></span>
|
||||
</span></code></pre>
|
||||
<p>在 H3 标题下面添加样式标注 <code><!--rehype:style=background:#e91e63;--></code></p>
|
||||
</div></div></div><div class="wrap"><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">
|
||||
|
||||
|
||||
@ -168,6 +181,11 @@
|
||||
<table class="shortcuts"><thead><tr><th>Key</th><th>value</th></tr></thead><tbody><tr><td><code>快捷键</code></td><td>说明</td></tr><tr><td><code>快捷键</code></td><td>说明</td></tr></tbody></table>
|
||||
<!--rehype:className=shortcuts-->
|
||||
<p>列表添加 <code><!--rehype:className=shortcuts--></code> 样式类,展示快捷键样式。</p>
|
||||
</div></div></div><div class="wrap"><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-jsx"><code class="language-jsx code-highlight"><span class="code-line line-number" line="1"><span class="token keyword module">export</span> <span class="token keyword">const</span> <span class="token maybe-class-name">Student</span> <span class="token operator">=</span> <span class="token punctuation">(</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">className</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Student<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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">
|
||||
|
||||
|
||||
@ -223,20 +241,20 @@
|
||||
</div></div></div></div></div><div class="wrap"><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 row-span-2"><div class="wrap-header h3wrap"><h3 id="h2-部分"><a aria-hidden="true" tabindex="-1" href="#h2-部分"><span class="icon icon-link"></span></a>H2 部分</h3><div class="wrap-body">
|
||||
<!--rehype:wrap-class=row-span-2-->
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line line-number" line="1"><span class="token title important">H2 部分
|
||||
</span></span><span class="code-line line-number" line="2"><span class="token title important"><span class="token punctuation">---</span></span>
|
||||
</span><span class="code-line line-number" line="3">
|
||||
</span><span class="code-line line-number" line="4"><span class="token title important"><span class="token punctuation">###</span> 卡片 1 (H3 部分)</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token title important"><span class="token punctuation">###</span> 卡片 2 (H3 部分)</span>
|
||||
</span><span class="code-line line-number" line="6"><span class="token title important"><span class="token punctuation">###</span> 卡片 3 (H3 部分)</span>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line"><span class="token title important">H2 部分
|
||||
</span></span><span class="code-line"><span class="token title important"><span class="token punctuation">---</span></span>
|
||||
</span><span class="code-line">
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> 卡片 1 (H3 部分)</span>
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> 卡片 2 (H3 部分)</span>
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> 卡片 3 (H3 部分)</span>
|
||||
</span></code></pre>
|
||||
<p>上面实例 <code>H2 部分</code> 标题下面有三个<code>卡片</code>,默认 <code>3</code> 栏布局。</p>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line line-number" line="1"><span class="token title important">H2 部分
|
||||
</span></span><span class="code-line line-number" line="2"><span class="token title important"><span class="token punctuation">---</span></span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token comment"><!--rehype:body-class=cols-2--></span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token title important"><span class="token punctuation">###</span> 卡片 1 (H3 部分)</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token title important"><span class="token punctuation">###</span> 卡片 2 (H3 部分)</span>
|
||||
</span><span class="code-line line-number" line="6"><span class="token title important"><span class="token punctuation">###</span> 卡片 3 (H3 部分)</span>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line"><span class="token title important">H2 部分
|
||||
</span></span><span class="code-line"><span class="token title important"><span class="token punctuation">---</span></span>
|
||||
</span><span class="code-line"><span class="token comment"><!--rehype:body-class=cols-2--></span>
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> 卡片 1 (H3 部分)</span>
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> 卡片 2 (H3 部分)</span>
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> 卡片 3 (H3 部分)</span>
|
||||
</span></code></pre>
|
||||
<p>使用注释配置为 H2 部分 添加 <code>col-span-2</code> 类,将 <del><code>3</code></del> 栏布局变成 <code>2</code> 栏布局。</p>
|
||||
|
||||
@ -271,23 +289,23 @@
|
||||
<table class="show-header "><thead><tr><th>类</th><th>说明</th></tr></thead><tbody><tr><td><code>cols-1</code></td><td><code>1</code> 栏卡片布局</td></tr><tr><td><code>cols-2</code></td><td><code>2</code> 栏卡片布局</td></tr><tr><td><code>cols-3</code></td><td><code>3</code> 栏卡片布局</td></tr><tr><td><code>cols-4</code></td><td><code>4</code> 栏卡片布局</td></tr><tr><td><code>cols-5</code></td><td><code>5</code> 栏卡片布局</td></tr></tbody></table>
|
||||
<!--rehype:className=show-header -->
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="占位布局-style-写法"><a aria-hidden="true" tabindex="-1" href="#占位布局-style-写法"><span class="icon icon-link"></span></a>占位布局 style 写法</h3><div class="wrap-body">
|
||||
<pre class="wrap-text "><code class="language-markdown code-highlight"><span class="code-line line-number" line="1"><span class="token title important"><span class="token punctuation">###</span> H3 部分</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token comment"><!--rehype:wrap-style=grid-row: span 2/span 2;--></span>
|
||||
<pre class="wrap-text "><code class="language-markdown code-highlight"><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> H3 部分</span>
|
||||
</span><span class="code-line"><span class="token comment"><!--rehype:wrap-style=grid-row: span 2/span 2;--></span>
|
||||
</span></code></pre>
|
||||
<!--rehype:className=wrap-text -->
|
||||
<p>放在 <code>### H3 部分</code> 下面的注释配置,与 <code><!--rehype:wrap-class=row-span-2--></code> 相同,设置 2 行占位布局。</p>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="卡片栏布局-style-写法"><a aria-hidden="true" tabindex="-1" href="#卡片栏布局-style-写法"><span class="icon icon-link"></span></a>卡片栏布局 style 写法</h3><div class="wrap-body">
|
||||
<pre class="wrap-text "><code class="language-markdown code-highlight"><span class="code-line line-number" line="1"><span class="token title important"><span class="token punctuation">##</span> H2 部分</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token comment"><!--rehype:body-style=grid-template-columns: repeat(2,minmax(0,1fr));--></span>
|
||||
<pre class="wrap-text "><code class="language-markdown code-highlight"><span class="code-line"><span class="token title important"><span class="token punctuation">##</span> H2 部分</span>
|
||||
</span><span class="code-line"><span class="token comment"><!--rehype:body-style=grid-template-columns: repeat(2,minmax(0,1fr));--></span>
|
||||
</span></code></pre>
|
||||
<!--rehype:className=wrap-text -->
|
||||
<p>放在 <code>## H2 部分</code> 下面的注释配置,与 <code><!--rehype:body-class=cols-2--></code> 相同,设置 2 栏布局。</p>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="h3-部分"><a aria-hidden="true" tabindex="-1" href="#h3-部分"><span class="icon icon-link"></span></a>H3 部分</h3><div class="wrap-body">
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line line-number" line="1"><span class="token title important"><span class="token punctuation">###</span> 卡片 1 (H3 部分)</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token comment"><!--rehype:wrap-class=row-span-2--></span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token title important"><span class="token punctuation">###</span> 卡片 2 (H3 部分)</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token comment"><!--rehype:wrap-class=col-span-3--></span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token title important"><span class="token punctuation">###</span> 卡片 3 (H3 部分)</span>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> 卡片 1 (H3 部分)</span>
|
||||
</span><span class="code-line"><span class="token comment"><!--rehype:wrap-class=row-span-2--></span>
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> 卡片 2 (H3 部分)</span>
|
||||
</span><span class="code-line"><span class="token comment"><!--rehype:wrap-class=col-span-3--></span>
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> 卡片 3 (H3 部分)</span>
|
||||
</span></code></pre>
|
||||
|
||||
|
||||
@ -325,165 +343,165 @@
|
||||
<table class="show-header "><thead><tr><th>类</th><th>说明</th></tr></thead><tbody><tr><td><code>col-span-2</code></td><td><code>2</code> 列占位</td></tr><tr><td><code>col-span-3</code></td><td><code>3</code> 列占位</td></tr><tr><td><code>col-span-4</code></td><td><code>4</code> 列占位</td></tr><tr><td><code>row-span-2</code></td><td><code>2</code> 行占位</td></tr><tr><td><code>row-span-3</code></td><td><code>3</code> 行占位</td></tr><tr><td><code>row-span-4</code></td><td><code>4</code> 行占位</td></tr></tbody></table>
|
||||
<!--rehype:className=show-header -->
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="卡片合并行布局-1"><a aria-hidden="true" tabindex="-1" href="#卡片合并行布局-1"><span class="icon icon-link"></span></a>卡片合并行布局 1</h3><div class="wrap-body">
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">╭┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈╮
|
||||
</span><span class="code-line line-number" line="2">┆ H3 Title <span class="token number">1</span> ┆
|
||||
</span><span class="code-line line-number" line="3">╰┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈╯
|
||||
</span><span class="code-line line-number" line="4">╭┈┈┈╮ ╭┈┈┈╮ ╭┈┈┈╮
|
||||
</span><span class="code-line line-number" line="5">┆ <span class="token number">2</span> ┆ ┆ <span class="token number">3</span> ┆ ┆ <span class="token number">4</span> ┆
|
||||
</span><span class="code-line line-number" line="6">╰┈┈┈╯ ╰┈┈┈╯ ╰┈┈┈╯
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">╭┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈╮
|
||||
</span><span class="code-line">┆ H3 Title <span class="token number">1</span> ┆
|
||||
</span><span class="code-line">╰┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈╯
|
||||
</span><span class="code-line">╭┈┈┈╮ ╭┈┈┈╮ ╭┈┈┈╮
|
||||
</span><span class="code-line">┆ <span class="token number">2</span> ┆ ┆ <span class="token number">3</span> ┆ ┆ <span class="token number">4</span> ┆
|
||||
</span><span class="code-line">╰┈┈┈╯ ╰┈┈┈╯ ╰┈┈┈╯
|
||||
</span></code></pre>
|
||||
<p>上面布局效果 Markdown 源码:</p>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line line-number" line="1"><span class="token title important"><span class="token punctuation">###</span> H3 Title 1</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token comment"><!--rehype:wrap-class=col-span-3--></span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token title important"><span class="token punctuation">###</span> Title 2</span>
|
||||
</span><span class="code-line line-number" line="4">
|
||||
</span><span class="code-line line-number" line="5"><span class="token title important"><span class="token punctuation">###</span> Title 3</span>
|
||||
</span><span class="code-line line-number" line="6">
|
||||
</span><span class="code-line line-number" line="7"><span class="token title important"><span class="token punctuation">###</span> Title 4</span>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> H3 Title 1</span>
|
||||
</span><span class="code-line"><span class="token comment"><!--rehype:wrap-class=col-span-3--></span>
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> Title 2</span>
|
||||
</span><span class="code-line">
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> Title 3</span>
|
||||
</span><span class="code-line">
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> Title 4</span>
|
||||
</span></code></pre>
|
||||
<p>第一标题添加 <code>col-span-3</code> 占位类</p>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="卡片列合并布局-2"><a aria-hidden="true" tabindex="-1" href="#卡片列合并布局-2"><span class="icon icon-link"></span></a>卡片列合并布局 2</h3><div class="wrap-body">
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">╭┈┈┈╮ ╭┈┈┈╮ ╭┈┈┈╮
|
||||
</span><span class="code-line line-number" line="2">┆ <span class="token number">1</span> ┆ ┆ <span class="token number">2</span> ┆ ┆ <span class="token number">3</span> ┆
|
||||
</span><span class="code-line line-number" line="3">┆ ┆ ╰┈┈┈╯ ╰┈┈┈╯
|
||||
</span><span class="code-line line-number" line="4">┆ ┆ ╭┈┈┈╮ ╭┈┈┈╮
|
||||
</span><span class="code-line line-number" line="5">┆ ┆ ┆ <span class="token number">4</span> ┆ ┆ <span class="token number">5</span> ┆
|
||||
</span><span class="code-line line-number" line="6">╰┈┈┈╯ ╰┈┈┈╯ ╰┈┈┈╯
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">╭┈┈┈╮ ╭┈┈┈╮ ╭┈┈┈╮
|
||||
</span><span class="code-line">┆ <span class="token number">1</span> ┆ ┆ <span class="token number">2</span> ┆ ┆ <span class="token number">3</span> ┆
|
||||
</span><span class="code-line">┆ ┆ ╰┈┈┈╯ ╰┈┈┈╯
|
||||
</span><span class="code-line">┆ ┆ ╭┈┈┈╮ ╭┈┈┈╮
|
||||
</span><span class="code-line">┆ ┆ ┆ <span class="token number">4</span> ┆ ┆ <span class="token number">5</span> ┆
|
||||
</span><span class="code-line">╰┈┈┈╯ ╰┈┈┈╯ ╰┈┈┈╯
|
||||
</span></code></pre>
|
||||
<p>上面布局效果 Markdown 源码:</p>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line line-number" line="1"><span class="token title important"><span class="token punctuation">###</span> Title 1</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token comment"><!--rehype:wrap-class=row-span-2--></span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token title important"><span class="token punctuation">###</span> Title 2</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token title important"><span class="token punctuation">###</span> Title 3</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token title important"><span class="token punctuation">###</span> Title 4</span>
|
||||
</span><span class="code-line line-number" line="6"><span class="token title important"><span class="token punctuation">###</span> Title 5</span>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> Title 1</span>
|
||||
</span><span class="code-line"><span class="token comment"><!--rehype:wrap-class=row-span-2--></span>
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> Title 2</span>
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> Title 3</span>
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> Title 4</span>
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> Title 5</span>
|
||||
</span></code></pre>
|
||||
<p>在 <code>Title 1</code> 标题添加 <code>row-span-2</code> 占位类</p>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="卡片列合并布局-3"><a aria-hidden="true" tabindex="-1" href="#卡片列合并布局-3"><span class="icon icon-link"></span></a>卡片列合并布局 3</h3><div class="wrap-body">
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">╭┈┈┈╮ ╭┈┈┈╮ ╭┈┈┈╮
|
||||
</span><span class="code-line line-number" line="2">┆ <span class="token number">1</span> ┆ ┆ <span class="token number">2</span> ┆ ┆ <span class="token number">3</span> ┆
|
||||
</span><span class="code-line line-number" line="3">╰┈┈┈╯ ┆ ┆ ╰┈┈┈╯
|
||||
</span><span class="code-line line-number" line="4">╭┈┈┈╮ ┆ ┆ ╭┈┈┈╮
|
||||
</span><span class="code-line line-number" line="5">┆ <span class="token number">4</span> ┆ ┆ ┆ ┆ <span class="token number">5</span> ┆
|
||||
</span><span class="code-line line-number" line="6">╰┈┈┈╯ ╰┈┈┈╯ ╰┈┈┈╯
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">╭┈┈┈╮ ╭┈┈┈╮ ╭┈┈┈╮
|
||||
</span><span class="code-line">┆ <span class="token number">1</span> ┆ ┆ <span class="token number">2</span> ┆ ┆ <span class="token number">3</span> ┆
|
||||
</span><span class="code-line">╰┈┈┈╯ ┆ ┆ ╰┈┈┈╯
|
||||
</span><span class="code-line">╭┈┈┈╮ ┆ ┆ ╭┈┈┈╮
|
||||
</span><span class="code-line">┆ <span class="token number">4</span> ┆ ┆ ┆ ┆ <span class="token number">5</span> ┆
|
||||
</span><span class="code-line">╰┈┈┈╯ ╰┈┈┈╯ ╰┈┈┈╯
|
||||
</span></code></pre>
|
||||
<p>上面布局效果 Markdown 源码:</p>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line line-number" line="1"><span class="token title important"><span class="token punctuation">###</span> Title 1</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token title important"><span class="token punctuation">###</span> Title 2</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token comment"><!--rehype:wrap-class=row-span-2--></span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token title important"><span class="token punctuation">###</span> Title 3</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token title important"><span class="token punctuation">###</span> Title 4</span>
|
||||
</span><span class="code-line line-number" line="6"><span class="token title important"><span class="token punctuation">###</span> Title 5</span>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> Title 1</span>
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> Title 2</span>
|
||||
</span><span class="code-line"><span class="token comment"><!--rehype:wrap-class=row-span-2--></span>
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> Title 3</span>
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> Title 4</span>
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> Title 5</span>
|
||||
</span></code></pre>
|
||||
<p>在 <code>Title 2</code> 标题添加 <code>row-span-2</code> 占位类</p>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="卡片列合并布局-4"><a aria-hidden="true" tabindex="-1" href="#卡片列合并布局-4"><span class="icon icon-link"></span></a>卡片列合并布局 4</h3><div class="wrap-body">
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">╭┈┈┈╮ ╭┈┈┈╮ ╭┈┈┈╮
|
||||
</span><span class="code-line line-number" line="2">┆ <span class="token number">1</span> ┆ ┆ <span class="token number">2</span> ┆ ┆ <span class="token number">3</span> ┆
|
||||
</span><span class="code-line line-number" line="3">╰┈┈┈╯ ╰┈┈┈╯ ┆ ┆
|
||||
</span><span class="code-line line-number" line="4">╭┈┈┈╮ ╭┈┈┈╮ ┆ ┆
|
||||
</span><span class="code-line line-number" line="5">┆ <span class="token number">4</span> ┆ ┆ <span class="token number">5</span> ┆ ┆ ┆
|
||||
</span><span class="code-line line-number" line="6">╰┈┈┈╯ ╰┈┈┈╯ ╰┈┈┈╯
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">╭┈┈┈╮ ╭┈┈┈╮ ╭┈┈┈╮
|
||||
</span><span class="code-line">┆ <span class="token number">1</span> ┆ ┆ <span class="token number">2</span> ┆ ┆ <span class="token number">3</span> ┆
|
||||
</span><span class="code-line">╰┈┈┈╯ ╰┈┈┈╯ ┆ ┆
|
||||
</span><span class="code-line">╭┈┈┈╮ ╭┈┈┈╮ ┆ ┆
|
||||
</span><span class="code-line">┆ <span class="token number">4</span> ┆ ┆ <span class="token number">5</span> ┆ ┆ ┆
|
||||
</span><span class="code-line">╰┈┈┈╯ ╰┈┈┈╯ ╰┈┈┈╯
|
||||
</span></code></pre>
|
||||
<p>上面布局效果 Markdown 源码:</p>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line line-number" line="1"><span class="token title important"><span class="token punctuation">###</span> Title 1</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token title important"><span class="token punctuation">###</span> Title 2</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token title important"><span class="token punctuation">###</span> Title 3</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token comment"><!--rehype:wrap-class=row-span-2--></span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token title important"><span class="token punctuation">###</span> Title 4</span>
|
||||
</span><span class="code-line line-number" line="6"><span class="token title important"><span class="token punctuation">###</span> Title 5</span>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> Title 1</span>
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> Title 2</span>
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> Title 3</span>
|
||||
</span><span class="code-line"><span class="token comment"><!--rehype:wrap-class=row-span-2--></span>
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> Title 4</span>
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> Title 5</span>
|
||||
</span></code></pre>
|
||||
<p>在 <code>Title 3</code> 标题添加 <code>row-span-2</code> 占位类</p>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="卡片列合并布局-5"><a aria-hidden="true" tabindex="-1" href="#卡片列合并布局-5"><span class="icon icon-link"></span></a>卡片列合并布局 5</h3><div class="wrap-body">
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">╭┈┈┈╮ ╭┈┈┈╮ ╭┈┈┈╮
|
||||
</span><span class="code-line line-number" line="2">┆ <span class="token number">1</span> ┆ ┆ <span class="token number">2</span> ┆ ┆ <span class="token number">3</span> ┆
|
||||
</span><span class="code-line line-number" line="3">╰┈┈┈╯ ╰┈┈┈╯ ╰┈┈┈╯
|
||||
</span><span class="code-line line-number" line="4">╭┈┈┈╮ ╭┈┈┈┈┈┈┈┈┈╮
|
||||
</span><span class="code-line line-number" line="5">┆ <span class="token number">4</span> ┆ ┆ <span class="token number">5</span> ┆
|
||||
</span><span class="code-line line-number" line="6">╰┈┈┈╯ ╰┈┈┈┈┈┈┈┈┈╯
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">╭┈┈┈╮ ╭┈┈┈╮ ╭┈┈┈╮
|
||||
</span><span class="code-line">┆ <span class="token number">1</span> ┆ ┆ <span class="token number">2</span> ┆ ┆ <span class="token number">3</span> ┆
|
||||
</span><span class="code-line">╰┈┈┈╯ ╰┈┈┈╯ ╰┈┈┈╯
|
||||
</span><span class="code-line">╭┈┈┈╮ ╭┈┈┈┈┈┈┈┈┈╮
|
||||
</span><span class="code-line">┆ <span class="token number">4</span> ┆ ┆ <span class="token number">5</span> ┆
|
||||
</span><span class="code-line">╰┈┈┈╯ ╰┈┈┈┈┈┈┈┈┈╯
|
||||
</span></code></pre>
|
||||
<p>上面布局效果 Markdown 源码:</p>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line line-number" line="1"><span class="token title important"><span class="token punctuation">###</span> Title 1</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token title important"><span class="token punctuation">###</span> Title 2</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token title important"><span class="token punctuation">###</span> Title 3</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token title important"><span class="token punctuation">###</span> Title 4</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token title important"><span class="token punctuation">###</span> Title 5</span>
|
||||
</span><span class="code-line line-number" line="6"><span class="token comment"><!--rehype:wrap-class=col-span-2--></span>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> Title 1</span>
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> Title 2</span>
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> Title 3</span>
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> Title 4</span>
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> Title 5</span>
|
||||
</span><span class="code-line"><span class="token comment"><!--rehype:wrap-class=col-span-2--></span>
|
||||
</span></code></pre>
|
||||
<p>在 <code>Title 5</code> 标题添加 <code>col-span-2</code> 占位类</p>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="卡片列合并布局-6"><a aria-hidden="true" tabindex="-1" href="#卡片列合并布局-6"><span class="icon icon-link"></span></a>卡片列合并布局 6</h3><div class="wrap-body">
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">╭┈┈┈╮ ╭┈┈┈┈┈┈┈┈┈╮
|
||||
</span><span class="code-line line-number" line="2">┆ <span class="token number">1</span> ┆ ┆ <span class="token number">2</span> ┆
|
||||
</span><span class="code-line line-number" line="3">╰┈┈┈╯ ╰┈┈┈┈┈┈┈┈┈╯
|
||||
</span><span class="code-line line-number" line="4">╭┈┈┈╮ ╭┈┈┈╮ ╭┈┈┈╮
|
||||
</span><span class="code-line line-number" line="5">┆ <span class="token number">3</span> ┆ ┆ <span class="token number">4</span> ┆ ┆ <span class="token number">5</span> ┆
|
||||
</span><span class="code-line line-number" line="6">╰┈┈┈╯ ╰┈┈┈╯ ╰┈┈┈╯
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">╭┈┈┈╮ ╭┈┈┈┈┈┈┈┈┈╮
|
||||
</span><span class="code-line">┆ <span class="token number">1</span> ┆ ┆ <span class="token number">2</span> ┆
|
||||
</span><span class="code-line">╰┈┈┈╯ ╰┈┈┈┈┈┈┈┈┈╯
|
||||
</span><span class="code-line">╭┈┈┈╮ ╭┈┈┈╮ ╭┈┈┈╮
|
||||
</span><span class="code-line">┆ <span class="token number">3</span> ┆ ┆ <span class="token number">4</span> ┆ ┆ <span class="token number">5</span> ┆
|
||||
</span><span class="code-line">╰┈┈┈╯ ╰┈┈┈╯ ╰┈┈┈╯
|
||||
</span></code></pre>
|
||||
<p>上面布局效果 Markdown 源码:</p>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line line-number" line="1"><span class="token title important"><span class="token punctuation">###</span> Title 1</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token title important"><span class="token punctuation">###</span> Title 2</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token comment"><!--rehype:wrap-class=col-span-2--></span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token title important"><span class="token punctuation">###</span> Title 3</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token title important"><span class="token punctuation">###</span> Title 4</span>
|
||||
</span><span class="code-line line-number" line="6"><span class="token title important"><span class="token punctuation">###</span> Title 5</span>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> Title 1</span>
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> Title 2</span>
|
||||
</span><span class="code-line"><span class="token comment"><!--rehype:wrap-class=col-span-2--></span>
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> Title 3</span>
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> Title 4</span>
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> Title 5</span>
|
||||
</span></code></pre>
|
||||
<p>在 <code>Title 2</code> 标题添加 <code>col-span-2</code> 占位类</p>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="卡片列合并布局-7"><a aria-hidden="true" tabindex="-1" href="#卡片列合并布局-7"><span class="icon icon-link"></span></a>卡片列合并布局 7</h3><div class="wrap-body">
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">╭┈┈┈╮ ╭┈┈┈╮ ╭┈┈┈╮
|
||||
</span><span class="code-line line-number" line="2">┆ <span class="token number">1</span> ┆ ┆ <span class="token number">2</span> ┆ ┆ <span class="token number">3</span> ┆
|
||||
</span><span class="code-line line-number" line="3">╰┈┈┈╯ ╰┈┈┈╯ ╰┈┈┈╯
|
||||
</span><span class="code-line line-number" line="4">╭┈┈┈┈┈┈┈┈┈╮ ╭┈┈┈╮
|
||||
</span><span class="code-line line-number" line="5">┆ <span class="token number">4</span> ┆ ┆ <span class="token number">5</span> ┆
|
||||
</span><span class="code-line line-number" line="6">╰┈┈┈┈┈┈┈┈┈╯ ╰┈┈┈╯
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">╭┈┈┈╮ ╭┈┈┈╮ ╭┈┈┈╮
|
||||
</span><span class="code-line">┆ <span class="token number">1</span> ┆ ┆ <span class="token number">2</span> ┆ ┆ <span class="token number">3</span> ┆
|
||||
</span><span class="code-line">╰┈┈┈╯ ╰┈┈┈╯ ╰┈┈┈╯
|
||||
</span><span class="code-line">╭┈┈┈┈┈┈┈┈┈╮ ╭┈┈┈╮
|
||||
</span><span class="code-line">┆ <span class="token number">4</span> ┆ ┆ <span class="token number">5</span> ┆
|
||||
</span><span class="code-line">╰┈┈┈┈┈┈┈┈┈╯ ╰┈┈┈╯
|
||||
</span></code></pre>
|
||||
<p>上面布局效果 Markdown 源码:</p>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line line-number" line="1"><span class="token title important"><span class="token punctuation">###</span> Title 1</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token title important"><span class="token punctuation">###</span> Title 2</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token title important"><span class="token punctuation">###</span> Title 3</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token title important"><span class="token punctuation">###</span> Title 4</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token comment"><!--rehype:wrap-class=col-span-2--></span>
|
||||
</span><span class="code-line line-number" line="6"><span class="token title important"><span class="token punctuation">###</span> Title 5</span>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> Title 1</span>
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> Title 2</span>
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> Title 3</span>
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> Title 4</span>
|
||||
</span><span class="code-line"><span class="token comment"><!--rehype:wrap-class=col-span-2--></span>
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> Title 5</span>
|
||||
</span></code></pre>
|
||||
<p>在 <code>Title 4</code> 标题添加 <code>col-span-2</code> 占位类</p>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="卡片列合并布局-8"><a aria-hidden="true" tabindex="-1" href="#卡片列合并布局-8"><span class="icon icon-link"></span></a>卡片列合并布局 8</h3><div class="wrap-body">
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">╭┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈╮
|
||||
</span><span class="code-line line-number" line="2">┆ H3 Title <span class="token number">1</span> ┆
|
||||
</span><span class="code-line line-number" line="3">╰┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈╯
|
||||
</span><span class="code-line line-number" line="4">╭┈┈┈╮ ╭┈┈┈╮ ╭┈┈┈╮ ╭┈┈┈╮
|
||||
</span><span class="code-line line-number" line="5">┆ <span class="token number">2</span> ┆ ┆ <span class="token number">3</span> ┆ ┆ <span class="token number">4</span> ┆ ┆ <span class="token number">5</span> ┆
|
||||
</span><span class="code-line line-number" line="6">╰┈┈┈╯ ╰┈┈┈╯ ╰┈┈┈╯ ╰┈┈┈╯
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">╭┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈╮
|
||||
</span><span class="code-line">┆ H3 Title <span class="token number">1</span> ┆
|
||||
</span><span class="code-line">╰┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈╯
|
||||
</span><span class="code-line">╭┈┈┈╮ ╭┈┈┈╮ ╭┈┈┈╮ ╭┈┈┈╮
|
||||
</span><span class="code-line">┆ <span class="token number">2</span> ┆ ┆ <span class="token number">3</span> ┆ ┆ <span class="token number">4</span> ┆ ┆ <span class="token number">5</span> ┆
|
||||
</span><span class="code-line">╰┈┈┈╯ ╰┈┈┈╯ ╰┈┈┈╯ ╰┈┈┈╯
|
||||
</span></code></pre>
|
||||
<p>上面布局效果 Markdown 源码:</p>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line line-number" line="1"><span class="token title important">H2 部分
|
||||
</span></span><span class="code-line line-number" line="2"><span class="token title important"><span class="token punctuation">----</span></span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token comment"><!--rehype:body-class=cols-4--></span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token title important"><span class="token punctuation">###</span> Title 1</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token comment"><!--rehype:wrap-class=col-span-4--></span>
|
||||
</span><span class="code-line line-number" line="6"><span class="token title important"><span class="token punctuation">###</span> Title 2</span>
|
||||
</span><span class="code-line line-number" line="7"><span class="token title important"><span class="token punctuation">###</span> Title 3</span>
|
||||
</span><span class="code-line line-number" line="8"><span class="token title important"><span class="token punctuation">###</span> Title 4</span>
|
||||
</span><span class="code-line line-number" line="9"><span class="token title important"><span class="token punctuation">###</span> Title 5</span>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line"><span class="token title important">H2 部分
|
||||
</span></span><span class="code-line"><span class="token title important"><span class="token punctuation">----</span></span>
|
||||
</span><span class="code-line"><span class="token comment"><!--rehype:body-class=cols-4--></span>
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> Title 1</span>
|
||||
</span><span class="code-line"><span class="token comment"><!--rehype:wrap-class=col-span-4--></span>
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> Title 2</span>
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> Title 3</span>
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> Title 4</span>
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> Title 5</span>
|
||||
</span></code></pre>
|
||||
<p>在 <code>H2 部分</code> 标题添加 <code>cols-4</code>,和 <code>Title 1</code> 添加 <code>col-span-4</code> 合并栏</p>
|
||||
</div></div></div><div class="wrap col-span-2"><div class="wrap-header h3wrap"><h3 id="卡片列合并布局-9"><a aria-hidden="true" tabindex="-1" href="#卡片列合并布局-9"><span class="icon icon-link"></span></a>卡片列合并布局 9</h3><div class="wrap-body">
|
||||
<!--rehype:wrap-class=col-span-2-->
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">╭┈┈┈┈┈┈┈┈┈╮ ╭┈┈┈╮
|
||||
</span><span class="code-line line-number" line="2">┆ <span class="token number">1</span> ┆ ┆ <span class="token number">2</span> ┆
|
||||
</span><span class="code-line line-number" line="3">┆ ┆ ╰┈┈┈╯
|
||||
</span><span class="code-line line-number" line="4">┆ ┆ ╭┈┈┈╮
|
||||
</span><span class="code-line line-number" line="5">┆ ┆ ┆ <span class="token number">3</span> ┆
|
||||
</span><span class="code-line line-number" line="6">╰┈┈┈┈┈┈┈┈┈╯ ╰┈┈┈╯
|
||||
</span><span class="code-line line-number" line="7">╭┈┈┈╮ ╭┈┈┈╮ ╭┈┈┈╮
|
||||
</span><span class="code-line line-number" line="8">┆ <span class="token number">4</span> ┆ ┆ <span class="token number">5</span> ┆ ┆ <span class="token number">6</span> ┆
|
||||
</span><span class="code-line line-number" line="9">╰┈┈┈╯ ╰┈┈┈╯ ╰┈┈┈╯
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">╭┈┈┈┈┈┈┈┈┈╮ ╭┈┈┈╮
|
||||
</span><span class="code-line">┆ <span class="token number">1</span> ┆ ┆ <span class="token number">2</span> ┆
|
||||
</span><span class="code-line">┆ ┆ ╰┈┈┈╯
|
||||
</span><span class="code-line">┆ ┆ ╭┈┈┈╮
|
||||
</span><span class="code-line">┆ ┆ ┆ <span class="token number">3</span> ┆
|
||||
</span><span class="code-line">╰┈┈┈┈┈┈┈┈┈╯ ╰┈┈┈╯
|
||||
</span><span class="code-line">╭┈┈┈╮ ╭┈┈┈╮ ╭┈┈┈╮
|
||||
</span><span class="code-line">┆ <span class="token number">4</span> ┆ ┆ <span class="token number">5</span> ┆ ┆ <span class="token number">6</span> ┆
|
||||
</span><span class="code-line">╰┈┈┈╯ ╰┈┈┈╯ ╰┈┈┈╯
|
||||
</span></code></pre>
|
||||
<p>上面布局效果 Markdown 源码:</p>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line line-number" line="1"><span class="token title important"><span class="token punctuation">###</span> Title 1</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token comment"><!--rehype:wrap-class=col-span-2 row-span-2--></span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token title important"><span class="token punctuation">###</span> Title 2</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token title important"><span class="token punctuation">###</span> Title 3</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token title important"><span class="token punctuation">###</span> Title 4</span>
|
||||
</span><span class="code-line line-number" line="6"><span class="token title important"><span class="token punctuation">###</span> Title 5</span>
|
||||
</span><span class="code-line line-number" line="7"><span class="token title important"><span class="token punctuation">###</span> Title 6</span>
|
||||
<pre class="language-markdown"><code class="language-markdown code-highlight"><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> Title 1</span>
|
||||
</span><span class="code-line"><span class="token comment"><!--rehype:wrap-class=col-span-2 row-span-2--></span>
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> Title 2</span>
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> Title 3</span>
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> Title 4</span>
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> Title 5</span>
|
||||
</span><span class="code-line"><span class="token title important"><span class="token punctuation">###</span> Title 6</span>
|
||||
</span></code></pre>
|
||||
<p>在 <code>Title 1</code> 标题添加 <code>col-span-2</code> 和 <code>row-span-2</code> 占位类,使用 <code>空格</code> 间隔。</p>
|
||||
</div></div></div></div></div><div class="wrap"><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">
|
||||
@ -634,44 +652,44 @@
|
||||
<!--rehype:body-class=cols-5-->
|
||||
</div></div><div class="h2wrap-body cols-5"><div class="wrap" style="background:#dba300;"><div class="wrap-header h3wrap"><h3 id="one"><a aria-hidden="true" tabindex="-1" href="#one"><span class="icon icon-link"></span></a>One</h3><div class="wrap-body">
|
||||
<!--rehype:wrap-style=background:#dba300;-->
|
||||
<pre><code class="code-highlight"><span class="code-line line-number" line="1">...
|
||||
<pre><code class="code-highlight"><span class="code-line">...
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="two"><a aria-hidden="true" tabindex="-1" href="#two"><span class="icon icon-link"></span></a>Two</h3><div class="wrap-body">
|
||||
<pre><code class="code-highlight"><span class="code-line line-number" line="1">...
|
||||
<pre><code class="code-highlight"><span class="code-line">...
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="three"><a aria-hidden="true" tabindex="-1" href="#three"><span class="icon icon-link"></span></a>Three</h3><div class="wrap-body">
|
||||
<pre><code class="code-highlight"><span class="code-line line-number" line="1">...
|
||||
<pre><code class="code-highlight"><span class="code-line">...
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="four"><a aria-hidden="true" tabindex="-1" href="#four"><span class="icon icon-link"></span></a>Four</h3><div class="wrap-body">
|
||||
<pre><code class="code-highlight"><span class="code-line line-number" line="1">...
|
||||
<pre><code class="code-highlight"><span class="code-line">...
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="five"><a aria-hidden="true" tabindex="-1" href="#five"><span class="icon icon-link"></span></a>Five</h3><div class="wrap-body">
|
||||
<pre><code class="code-highlight"><span class="code-line line-number" line="1">...
|
||||
<pre><code class="code-highlight"><span class="code-line">...
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap"><div class="wrap-header h2wrap"><h2 id="h3-部分---占位效果展示"><a aria-hidden="true" tabindex="-1" href="#h3-部分---占位效果展示"><span class="icon icon-link"></span></a>H3 部分 - 占位效果展示</h2><div class="wrap-body">
|
||||
</div></div><div class="h2wrap-body"><div class="wrap row-span-2"><div class="wrap-header h3wrap"><h3 id="row-span-2"><a aria-hidden="true" tabindex="-1" href="#row-span-2"><span class="icon icon-link"></span></a>row-span-2</h3><div class="wrap-body">
|
||||
<!--rehype:wrap-class=row-span-2-->
|
||||
<pre><code class="code-highlight"><span class="code-line line-number" line="1">...
|
||||
<pre><code class="code-highlight"><span class="code-line">...
|
||||
</span></code></pre>
|
||||
<p><code><!--rehype:wrap-class=row-span-2--></code></p>
|
||||
</div></div></div><div class="wrap col-span-2"><div class="wrap-header h3wrap"><h3 id="col-span-2"><a aria-hidden="true" tabindex="-1" href="#col-span-2"><span class="icon icon-link"></span></a>col-span-2</h3><div class="wrap-body">
|
||||
<!--rehype:wrap-class=col-span-2-->
|
||||
<pre><code class="code-highlight"><span class="code-line line-number" line="1">...
|
||||
<pre><code class="code-highlight"><span class="code-line">...
|
||||
</span></code></pre>
|
||||
<p><code><!--rehype:wrap-class=col-span-2--></code></p>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 style="background:#e91e63;" id="红色标题-1"><a aria-hidden="true" tabindex="-1" href="#红色标题-1"><span class="icon icon-link"></span></a>红色标题</h3><div class="wrap-body">
|
||||
<!--rehype:style=background:#e91e63;-->
|
||||
<pre><code class="code-highlight"><span class="code-line line-number" line="1">...
|
||||
<pre><code class="code-highlight"><span class="code-line">...
|
||||
</span></code></pre>
|
||||
<p><code><!--rehype:style=background:#e91e63;--></code></p>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 style="background:#d7a100;" id="黄色标题"><a aria-hidden="true" tabindex="-1" href="#黄色标题"><span class="icon icon-link"></span></a>黄色标题</h3><div class="wrap-body">
|
||||
<!--rehype:style=background:#d7a100;-->
|
||||
<pre><code class="code-highlight"><span class="code-line line-number" line="1">...
|
||||
<pre><code class="code-highlight"><span class="code-line">...
|
||||
</span></code></pre>
|
||||
<p><code><!--rehype:style=background:#d7a100;--></code></p>
|
||||
</div></div></div><div class="wrap col-span-3"><div class="wrap-header h3wrap"><h3 id="col-span-3"><a aria-hidden="true" tabindex="-1" href="#col-span-3"><span class="icon icon-link"></span></a>col-span-3</h3><div class="wrap-body">
|
||||
<!--rehype:wrap-class=col-span-3-->
|
||||
<pre><code class="code-highlight"><span class="code-line line-number" line="1">...
|
||||
<pre><code class="code-highlight"><span class="code-line">...
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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">
|
||||
<p>每个部分可以有以下子项:</p>
|
||||
@ -692,8 +710,8 @@
|
||||
<p>这是一个包含段落的基本部分。</p>
|
||||
</div></div></div><div class="wrap" style="background: #1b5064;"><div class="wrap-header h3wrap"><h3 id="h3-部分背景颜色"><a aria-hidden="true" tabindex="-1" href="#h3-部分背景颜色"><span class="icon icon-link"></span></a>H3 部分背景颜色</h3><div class="wrap-body">
|
||||
<!--rehype:wrap-style=background: #1b5064;-->
|
||||
<pre class="wrap-text "><code class="language-markdown code-highlight"><span class="code-line line-number" line="1">注释配置:
|
||||
</span><span class="code-line line-number" line="2"><span class="token code-snippet code keyword">`<!--rehype:wrap-style=background: #1b5064;-->`</span>
|
||||
<pre class="wrap-text "><code class="language-markdown code-highlight"><span class="code-line">注释配置:
|
||||
</span><span class="code-line"><span class="token code-snippet code keyword">`<!--rehype:wrap-style=background: #1b5064;-->`</span>
|
||||
</span></code></pre>
|
||||
<!--rehype:className=wrap-text -->
|
||||
</div></div></div></div></div></div></div><footer class="footer-wrap"><footer class="max-container">© 2022 Kenny Wang, All rights reserved.</footer></footer></body>
|
||||
|
1140
docs/react.html
1140
docs/react.html
File diff suppressed because it is too large
Load Diff
344
docs/regex.html
344
docs/regex.html
@ -1269,7 +1269,7 @@
|
||||
<table><thead><tr><th align="left">范例</th><th>说明</th></tr></thead><tbody><tr><td align="left"><code>(?= )</code></td><td>向前看,如果你能提前找到</td></tr><tr><td align="left"><code>(?! )</code></td><td>向前看,如果你找不到前面</td></tr><tr><td align="left"><code>(?<= )</code></td><td>向后看,如果你能找到后面</td></tr><tr><td align="left"><code>(?<! )</code></td><td>向后看,如果你找不到后面</td></tr><tr><td align="left"><code>\b\w+?(?=ing\b)</code></td><td>匹配 <yel>warbl</yel>ing, <yel>str</yel>ing, <yel>fish</yel>ing, ...</td></tr><tr><td align="left"><code>\b(?!\w+ing\b)\w+\b</code></td><td>不以“ing”结尾的单词</td></tr><tr><td align="left"><code>(?<=\bpre).*?\b </code></td><td>匹配 pre<yel>tend</yel>、pre<yel>sent</yel>、pre<yel>fix</yel>、...</td></tr><tr><td align="left"><code>\b\w{3}(?<!pre)\w*?\b</code></td><td>不以“pre”开头的词</td></tr><tr><td align="left"><code>\b\w+(?<!ing)\b</code></td><td>匹配不以“ing”结尾的单词</td></tr></tbody></table>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="if-then-else"><a aria-hidden="true" tabindex="-1" href="#if-then-else"><span class="icon icon-link"></span></a>If-then-else</h3><div class="wrap-body">
|
||||
<p>匹配 <code>Mr.</code> 或 <code>Ms.</code> 如果单词 <code>her</code> 稍后在字符串中</p>
|
||||
<pre><code class="code-highlight"><span class="code-line line-number" line="1">M(?(?=.*?\bher\b)s|r)\.
|
||||
<pre><code class="code-highlight"><span class="code-line">M(?(?=.*?\bher\b)s|r)\.
|
||||
</span></code></pre>
|
||||
<p>需要环顾 <code>IF</code> 条件</p>
|
||||
</div></div></div></div></div><div class="wrap"><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">
|
||||
@ -1742,47 +1742,47 @@
|
||||
</div></div></div></div></div><div class="wrap"><div class="wrap-header h2wrap"><h2 id="python-中的正则表达式"><a aria-hidden="true" tabindex="-1" href="#python-中的正则表达式"><span class="icon icon-link"></span></a>Python 中的正则表达式</h2><div class="wrap-body">
|
||||
</div></div><div class="h2wrap-body"><div class="wrap"><div class="wrap-header h3wrap"><h3 id="入门-1"><a aria-hidden="true" tabindex="-1" href="#入门-1"><span class="icon icon-link"></span></a>入门</h3><div class="wrap-body">
|
||||
<p>导入正则表达式模块</p>
|
||||
<pre class="language-python"><code class="language-python code-highlight"><span class="code-line line-number" line="1"><span class="token keyword">import</span> re
|
||||
<pre class="language-python"><code class="language-python code-highlight"><span class="code-line"><span class="token keyword">import</span> re
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap col-span-2 row-span-3"><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=col-span-2 row-span-3-->
|
||||
</div></div><div class="h3wrap-body"><div class="wrap"><div class="wrap-header h4wrap"><h4 id="research"><a aria-hidden="true" tabindex="-1" href="#research"><span class="icon icon-link"></span></a>re.search()</h4><div class="wrap-body">
|
||||
<pre class="language-python"><code class="language-python code-highlight"><span class="code-line line-number" line="1"><span class="token operator">>></span><span class="token operator">></span> sentence <span class="token operator">=</span> <span class="token string">'This is a sample string'</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token operator">>></span><span class="token operator">></span> <span class="token builtin">bool</span><span class="token punctuation">(</span>re<span class="token punctuation">.</span>search<span class="token punctuation">(</span><span class="token string">r'this'</span><span class="token punctuation">,</span> sentence<span class="token punctuation">,</span> flags<span class="token operator">=</span>re<span class="token punctuation">.</span>I<span class="token punctuation">)</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token boolean">True</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token operator">>></span><span class="token operator">></span> <span class="token builtin">bool</span><span class="token punctuation">(</span>re<span class="token punctuation">.</span>search<span class="token punctuation">(</span><span class="token string">r'xyz'</span><span class="token punctuation">,</span> sentence<span class="token punctuation">)</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token boolean">False</span>
|
||||
<pre class="language-python"><code class="language-python code-highlight"><span class="code-line"><span class="token operator">>></span><span class="token operator">></span> sentence <span class="token operator">=</span> <span class="token string">'This is a sample string'</span>
|
||||
</span><span class="code-line"><span class="token operator">>></span><span class="token operator">></span> <span class="token builtin">bool</span><span class="token punctuation">(</span>re<span class="token punctuation">.</span>search<span class="token punctuation">(</span><span class="token string">r'this'</span><span class="token punctuation">,</span> sentence<span class="token punctuation">,</span> flags<span class="token operator">=</span>re<span class="token punctuation">.</span>I<span class="token punctuation">)</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token boolean">True</span>
|
||||
</span><span class="code-line"><span class="token operator">>></span><span class="token operator">></span> <span class="token builtin">bool</span><span class="token punctuation">(</span>re<span class="token punctuation">.</span>search<span class="token punctuation">(</span><span class="token string">r'xyz'</span><span class="token punctuation">,</span> sentence<span class="token punctuation">)</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token boolean">False</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h4wrap"><h4 id="refindall"><a aria-hidden="true" tabindex="-1" href="#refindall"><span class="icon icon-link"></span></a>re.findall()</h4><div class="wrap-body">
|
||||
<pre class="language-python"><code class="language-python code-highlight"><span class="code-line line-number" line="1"><span class="token operator">>></span><span class="token operator">></span> re<span class="token punctuation">.</span>findall<span class="token punctuation">(</span><span class="token string">r'\bs?pare?\b'</span><span class="token punctuation">,</span> <span class="token string">'par spar apparent spare part pare'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token punctuation">[</span><span class="token string">'par'</span><span class="token punctuation">,</span> <span class="token string">'spar'</span><span class="token punctuation">,</span> <span class="token string">'spare'</span><span class="token punctuation">,</span> <span class="token string">'pare'</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token operator">>></span><span class="token operator">></span> re<span class="token punctuation">.</span>findall<span class="token punctuation">(</span><span class="token string">r'\b0*[1-9]\d{2,}\b'</span><span class="token punctuation">,</span> <span class="token string">'0501 035 154 12 26 98234'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token punctuation">[</span><span class="token string">'0501'</span><span class="token punctuation">,</span> <span class="token string">'154'</span><span class="token punctuation">,</span> <span class="token string">'98234'</span><span class="token punctuation">]</span>
|
||||
<pre class="language-python"><code class="language-python code-highlight"><span class="code-line"><span class="token operator">>></span><span class="token operator">></span> re<span class="token punctuation">.</span>findall<span class="token punctuation">(</span><span class="token string">r'\bs?pare?\b'</span><span class="token punctuation">,</span> <span class="token string">'par spar apparent spare part pare'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token punctuation">[</span><span class="token string">'par'</span><span class="token punctuation">,</span> <span class="token string">'spar'</span><span class="token punctuation">,</span> <span class="token string">'spare'</span><span class="token punctuation">,</span> <span class="token string">'pare'</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line"><span class="token operator">>></span><span class="token operator">></span> re<span class="token punctuation">.</span>findall<span class="token punctuation">(</span><span class="token string">r'\b0*[1-9]\d{2,}\b'</span><span class="token punctuation">,</span> <span class="token string">'0501 035 154 12 26 98234'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token punctuation">[</span><span class="token string">'0501'</span><span class="token punctuation">,</span> <span class="token string">'154'</span><span class="token punctuation">,</span> <span class="token string">'98234'</span><span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h4wrap"><h4 id="refinditer"><a aria-hidden="true" tabindex="-1" href="#refinditer"><span class="icon icon-link"></span></a>re.finditer()</h4><div class="wrap-body">
|
||||
<pre class="language-python"><code class="language-python code-highlight"><span class="code-line line-number" line="1"><span class="token operator">>></span><span class="token operator">></span> m_iter <span class="token operator">=</span> re<span class="token punctuation">.</span>finditer<span class="token punctuation">(</span><span class="token string">r'[0-9]+'</span><span class="token punctuation">,</span> <span class="token string">'45 349 651 593 4 204'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token operator">>></span><span class="token operator">></span> <span class="token punctuation">[</span>m<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span> <span class="token keyword">for</span> m <span class="token keyword">in</span> m_iter <span class="token keyword">if</span> <span class="token builtin">int</span><span class="token punctuation">(</span>m<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token operator"><</span> <span class="token number">350</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token punctuation">[</span><span class="token string">'45'</span><span class="token punctuation">,</span> <span class="token string">'349'</span><span class="token punctuation">,</span> <span class="token string">'4'</span><span class="token punctuation">,</span> <span class="token string">'204'</span><span class="token punctuation">]</span>
|
||||
<pre class="language-python"><code class="language-python code-highlight"><span class="code-line"><span class="token operator">>></span><span class="token operator">></span> m_iter <span class="token operator">=</span> re<span class="token punctuation">.</span>finditer<span class="token punctuation">(</span><span class="token string">r'[0-9]+'</span><span class="token punctuation">,</span> <span class="token string">'45 349 651 593 4 204'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token operator">>></span><span class="token operator">></span> <span class="token punctuation">[</span>m<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span> <span class="token keyword">for</span> m <span class="token keyword">in</span> m_iter <span class="token keyword">if</span> <span class="token builtin">int</span><span class="token punctuation">(</span>m<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token operator"><</span> <span class="token number">350</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line"><span class="token punctuation">[</span><span class="token string">'45'</span><span class="token punctuation">,</span> <span class="token string">'349'</span><span class="token punctuation">,</span> <span class="token string">'4'</span><span class="token punctuation">,</span> <span class="token string">'204'</span><span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h4wrap"><h4 id="resplit"><a aria-hidden="true" tabindex="-1" href="#resplit"><span class="icon icon-link"></span></a>re.split()</h4><div class="wrap-body">
|
||||
<pre class="language-python"><code class="language-python code-highlight"><span class="code-line line-number" line="1"><span class="token operator">>></span><span class="token operator">></span> re<span class="token punctuation">.</span>split<span class="token punctuation">(</span><span class="token string">r'\d+'</span><span class="token punctuation">,</span> <span class="token string">'Sample123string42with777numbers'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token punctuation">[</span><span class="token string">'Sample'</span><span class="token punctuation">,</span> <span class="token string">'string'</span><span class="token punctuation">,</span> <span class="token string">'with'</span><span class="token punctuation">,</span> <span class="token string">'numbers'</span><span class="token punctuation">]</span>
|
||||
<pre class="language-python"><code class="language-python code-highlight"><span class="code-line"><span class="token operator">>></span><span class="token operator">></span> re<span class="token punctuation">.</span>split<span class="token punctuation">(</span><span class="token string">r'\d+'</span><span class="token punctuation">,</span> <span class="token string">'Sample123string42with777numbers'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token punctuation">[</span><span class="token string">'Sample'</span><span class="token punctuation">,</span> <span class="token string">'string'</span><span class="token punctuation">,</span> <span class="token string">'with'</span><span class="token punctuation">,</span> <span class="token string">'numbers'</span><span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h4wrap"><h4 id="resub"><a aria-hidden="true" tabindex="-1" href="#resub"><span class="icon icon-link"></span></a>re.sub()</h4><div class="wrap-body">
|
||||
<pre class="language-python"><code class="language-python code-highlight"><span class="code-line line-number" line="1"><span class="token operator">>></span><span class="token operator">></span> ip_lines <span class="token operator">=</span> <span class="token string">"catapults\nconcatenate\ncat"</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token operator">>></span><span class="token operator">></span> <span class="token keyword">print</span><span class="token punctuation">(</span>re<span class="token punctuation">.</span>sub<span class="token punctuation">(</span><span class="token string">r'^'</span><span class="token punctuation">,</span> <span class="token string">r'* '</span><span class="token punctuation">,</span> ip_lines<span class="token punctuation">,</span> flags<span class="token operator">=</span>re<span class="token punctuation">.</span>M<span class="token punctuation">)</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token operator">*</span> catapults
|
||||
</span><span class="code-line line-number" line="4"><span class="token operator">*</span> concatenate
|
||||
</span><span class="code-line line-number" line="5"><span class="token operator">*</span> cat
|
||||
<pre class="language-python"><code class="language-python code-highlight"><span class="code-line"><span class="token operator">>></span><span class="token operator">></span> ip_lines <span class="token operator">=</span> <span class="token string">"catapults\nconcatenate\ncat"</span>
|
||||
</span><span class="code-line"><span class="token operator">>></span><span class="token operator">></span> <span class="token keyword">print</span><span class="token punctuation">(</span>re<span class="token punctuation">.</span>sub<span class="token punctuation">(</span><span class="token string">r'^'</span><span class="token punctuation">,</span> <span class="token string">r'* '</span><span class="token punctuation">,</span> ip_lines<span class="token punctuation">,</span> flags<span class="token operator">=</span>re<span class="token punctuation">.</span>M<span class="token punctuation">)</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token operator">*</span> catapults
|
||||
</span><span class="code-line"><span class="token operator">*</span> concatenate
|
||||
</span><span class="code-line"><span class="token operator">*</span> cat
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h4wrap"><h4 id="recompile"><a aria-hidden="true" tabindex="-1" href="#recompile"><span class="icon icon-link"></span></a>re.compile()</h4><div class="wrap-body">
|
||||
<pre class="language-python"><code class="language-python code-highlight"><span class="code-line line-number" line="1"><span class="token operator">>></span><span class="token operator">></span> pet <span class="token operator">=</span> re<span class="token punctuation">.</span><span class="token builtin">compile</span><span class="token punctuation">(</span><span class="token string">r'dog'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token operator">>></span><span class="token operator">></span> <span class="token builtin">type</span><span class="token punctuation">(</span>pet<span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token operator"><</span><span class="token keyword">class</span> <span class="token string">'_sre.SRE_Pattern'</span><span class="token operator">></span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token operator">>></span><span class="token operator">></span> <span class="token builtin">bool</span><span class="token punctuation">(</span>pet<span class="token punctuation">.</span>search<span class="token punctuation">(</span><span class="token string">'They bought a dog'</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token boolean">True</span>
|
||||
</span><span class="code-line line-number" line="6"><span class="token operator">>></span><span class="token operator">></span> <span class="token builtin">bool</span><span class="token punctuation">(</span>pet<span class="token punctuation">.</span>search<span class="token punctuation">(</span><span class="token string">'A cat crossed their path'</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="7"><span class="token boolean">False</span>
|
||||
<pre class="language-python"><code class="language-python code-highlight"><span class="code-line"><span class="token operator">>></span><span class="token operator">></span> pet <span class="token operator">=</span> re<span class="token punctuation">.</span><span class="token builtin">compile</span><span class="token punctuation">(</span><span class="token string">r'dog'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token operator">>></span><span class="token operator">></span> <span class="token builtin">type</span><span class="token punctuation">(</span>pet<span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token operator"><</span><span class="token keyword">class</span> <span class="token string">'_sre.SRE_Pattern'</span><span class="token operator">></span>
|
||||
</span><span class="code-line"><span class="token operator">>></span><span class="token operator">></span> <span class="token builtin">bool</span><span class="token punctuation">(</span>pet<span class="token punctuation">.</span>search<span class="token punctuation">(</span><span class="token string">'They bought a dog'</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token boolean">True</span>
|
||||
</span><span class="code-line"><span class="token operator">>></span><span class="token operator">></span> <span class="token builtin">bool</span><span class="token punctuation">(</span>pet<span class="token punctuation">.</span>search<span class="token punctuation">(</span><span class="token string">'A cat crossed their path'</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token boolean">False</span>
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap"><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">
|
||||
|
||||
@ -1867,75 +1867,75 @@
|
||||
<table><thead><tr><th align="left">:-</th><th>-</th><th>-</th></tr></thead><tbody><tr><td align="left"><code>re.I</code></td><td><code>re.IGNORECASE</code></td><td>忽略大小写</td></tr><tr><td align="left"><code>re.M</code></td><td><code>re.MULTILINE</code></td><td>多行</td></tr><tr><td align="left"><code>re.L</code></td><td><code>re.LOCALE</code></td><td>使 <code>\w</code>、<code>\b</code>、<code>\s</code> <em>locale 依赖</em></td></tr><tr><td align="left"><code>re.S</code></td><td><code>re.DOTALL</code></td><td>点匹配所有 <em>(包括换行符)</em></td></tr><tr><td align="left"><code>re.U</code></td><td><code>re.UNICODE</code></td><td>使 <code>\w</code>、<code>\b</code>、<code>\d</code>、<code>\s</code> <em>unicode 依赖</em></td></tr><tr><td align="left"><code>re.X</code></td><td><code>re.VERBOSE</code></td><td>可读风格</td></tr></tbody></table>
|
||||
</div></div></div></div></div><div class="wrap"><div class="wrap-header h2wrap"><h2 id="javascript-中的正则表达式"><a aria-hidden="true" tabindex="-1" href="#javascript-中的正则表达式"><span class="icon icon-link"></span></a>JavaScript 中的正则表达式</h2><div class="wrap-body">
|
||||
</div></div><div class="h2wrap-body"><div class="wrap"><div class="wrap-header h3wrap"><h3 id="test"><a aria-hidden="true" tabindex="-1" href="#test"><span class="icon icon-link"></span></a>test()</h3><div class="wrap-body">
|
||||
<pre class="language-javascript"><code class="language-javascript code-highlight"><span class="code-line line-number" line="1"><span class="token keyword">let</span> textA <span class="token operator">=</span> <span class="token string">'I like APPles very much'</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token keyword">let</span> textB <span class="token operator">=</span> <span class="token string">'I like APPles'</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token keyword">let</span> regex <span class="token operator">=</span> <span class="token regex"><span class="token regex-delimiter">/</span><span class="token regex-source language-regex">apples<span class="token anchor function">$</span></span><span class="token regex-delimiter">/</span><span class="token regex-flags">i</span></span>
|
||||
</span><span class="code-line line-number" line="4">
|
||||
</span><span class="code-line line-number" line="5"><span class="token comment">// Output: false</span>
|
||||
</span><span class="code-line line-number" line="6"><span class="token console class-name">console</span><span class="token punctuation">.</span><span class="token method function property-access">log</span><span class="token punctuation">(</span>regex<span class="token punctuation">.</span><span class="token method function property-access">test</span><span class="token punctuation">(</span>textA<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="7">
|
||||
</span><span class="code-line line-number" line="8"><span class="token comment">// Output: true</span>
|
||||
</span><span class="code-line line-number" line="9"><span class="token console class-name">console</span><span class="token punctuation">.</span><span class="token method function property-access">log</span><span class="token punctuation">(</span>regex<span class="token punctuation">.</span><span class="token method function property-access">test</span><span class="token punctuation">(</span>textB<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
<pre class="language-javascript"><code class="language-javascript code-highlight"><span class="code-line"><span class="token keyword">let</span> textA <span class="token operator">=</span> <span class="token string">'I like APPles very much'</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token keyword">let</span> textB <span class="token operator">=</span> <span class="token string">'I like APPles'</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token keyword">let</span> regex <span class="token operator">=</span> <span class="token regex"><span class="token regex-delimiter">/</span><span class="token regex-source language-regex">apples<span class="token anchor function">$</span></span><span class="token regex-delimiter">/</span><span class="token regex-flags">i</span></span>
|
||||
</span><span class="code-line">
|
||||
</span><span class="code-line"><span class="token comment">// Output: false</span>
|
||||
</span><span class="code-line"><span class="token console class-name">console</span><span class="token punctuation">.</span><span class="token method function property-access">log</span><span class="token punctuation">(</span>regex<span class="token punctuation">.</span><span class="token method function property-access">test</span><span class="token punctuation">(</span>textA<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">// Output: true</span>
|
||||
</span><span class="code-line"><span class="token console class-name">console</span><span class="token punctuation">.</span><span class="token method function property-access">log</span><span class="token punctuation">(</span>regex<span class="token punctuation">.</span><span class="token method function property-access">test</span><span class="token punctuation">(</span>textB<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="search"><a aria-hidden="true" tabindex="-1" href="#search"><span class="icon icon-link"></span></a>search()</h3><div class="wrap-body">
|
||||
<pre class="language-javascript"><code class="language-javascript code-highlight"><span class="code-line line-number" line="1"><span class="token keyword">let</span> text <span class="token operator">=</span> <span class="token string">'I like APPles very much'</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token keyword">let</span> regexA <span class="token operator">=</span> <span class="token regex"><span class="token regex-delimiter">/</span><span class="token regex-source language-regex">apples</span><span class="token regex-delimiter">/</span></span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token keyword">let</span> regexB <span class="token operator">=</span> <span class="token regex"><span class="token regex-delimiter">/</span><span class="token regex-source language-regex">apples</span><span class="token regex-delimiter">/</span><span class="token regex-flags">i</span></span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="4">
|
||||
</span><span class="code-line line-number" line="5"><span class="token comment">// Output: -1</span>
|
||||
</span><span class="code-line line-number" line="6"><span class="token console class-name">console</span><span class="token punctuation">.</span><span class="token method function property-access">log</span><span class="token punctuation">(</span>text<span class="token punctuation">.</span><span class="token method function property-access">search</span><span class="token punctuation">(</span>regexA<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="7">
|
||||
</span><span class="code-line line-number" line="8"><span class="token comment">// Output: 7</span>
|
||||
</span><span class="code-line line-number" line="9"><span class="token console class-name">console</span><span class="token punctuation">.</span><span class="token method function property-access">log</span><span class="token punctuation">(</span>text<span class="token punctuation">.</span><span class="token method function property-access">search</span><span class="token punctuation">(</span>regexB<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
<pre class="language-javascript"><code class="language-javascript code-highlight"><span class="code-line"><span class="token keyword">let</span> text <span class="token operator">=</span> <span class="token string">'I like APPles very much'</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token keyword">let</span> regexA <span class="token operator">=</span> <span class="token regex"><span class="token regex-delimiter">/</span><span class="token regex-source language-regex">apples</span><span class="token regex-delimiter">/</span></span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token keyword">let</span> regexB <span class="token operator">=</span> <span class="token regex"><span class="token regex-delimiter">/</span><span class="token regex-source language-regex">apples</span><span class="token regex-delimiter">/</span><span class="token regex-flags">i</span></span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line">
|
||||
</span><span class="code-line"><span class="token comment">// Output: -1</span>
|
||||
</span><span class="code-line"><span class="token console class-name">console</span><span class="token punctuation">.</span><span class="token method function property-access">log</span><span class="token punctuation">(</span>text<span class="token punctuation">.</span><span class="token method function property-access">search</span><span class="token punctuation">(</span>regexA<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">// Output: 7</span>
|
||||
</span><span class="code-line"><span class="token console class-name">console</span><span class="token punctuation">.</span><span class="token method function property-access">log</span><span class="token punctuation">(</span>text<span class="token punctuation">.</span><span class="token method function property-access">search</span><span class="token punctuation">(</span>regexB<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="exec"><a aria-hidden="true" tabindex="-1" href="#exec"><span class="icon icon-link"></span></a>exec()</h3><div class="wrap-body">
|
||||
<pre class="language-javascript"><code class="language-javascript code-highlight"><span class="code-line line-number" line="1"><span class="token keyword">let</span> text <span class="token operator">=</span> <span class="token string">'Do you like apples?'</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token keyword">let</span> regex<span class="token operator">=</span> <span class="token regex"><span class="token regex-delimiter">/</span><span class="token regex-source language-regex">apples</span><span class="token regex-delimiter">/</span></span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="3">
|
||||
</span><span class="code-line line-number" line="4"><span class="token comment">// Output: apples</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token console class-name">console</span><span class="token punctuation">.</span><span class="token method function property-access">log</span><span class="token punctuation">(</span>regex<span class="token punctuation">.</span><span class="token method function property-access">exec</span><span class="token punctuation">(</span>text<span class="token punctuation">)</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="6">
|
||||
</span><span class="code-line line-number" line="7"><span class="token comment">// Output: Do you like apples?</span>
|
||||
</span><span class="code-line line-number" line="8"><span class="token console class-name">console</span><span class="token punctuation">.</span><span class="token method function property-access">log</span><span class="token punctuation">(</span>regex<span class="token punctuation">.</span><span class="token method function property-access">exec</span><span class="token punctuation">(</span>text<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token property-access">input</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
<pre class="language-javascript"><code class="language-javascript code-highlight"><span class="code-line"><span class="token keyword">let</span> text <span class="token operator">=</span> <span class="token string">'Do you like apples?'</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token keyword">let</span> regex<span class="token operator">=</span> <span class="token regex"><span class="token regex-delimiter">/</span><span class="token regex-source language-regex">apples</span><span class="token regex-delimiter">/</span></span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line">
|
||||
</span><span class="code-line"><span class="token comment">// Output: apples</span>
|
||||
</span><span class="code-line"><span class="token console class-name">console</span><span class="token punctuation">.</span><span class="token method function property-access">log</span><span class="token punctuation">(</span>regex<span class="token punctuation">.</span><span class="token method function property-access">exec</span><span class="token punctuation">(</span>text<span class="token punctuation">)</span><span class="token punctuation">[</span><span class="token number">0</span><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">// Output: Do you like apples?</span>
|
||||
</span><span class="code-line"><span class="token console class-name">console</span><span class="token punctuation">.</span><span class="token method function property-access">log</span><span class="token punctuation">(</span>regex<span class="token punctuation">.</span><span class="token method function property-access">exec</span><span class="token punctuation">(</span>text<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token property-access">input</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="match"><a aria-hidden="true" tabindex="-1" href="#match"><span class="icon icon-link"></span></a>match()</h3><div class="wrap-body">
|
||||
<pre class="language-javascript"><code class="language-javascript code-highlight"><span class="code-line line-number" line="1"><span class="token keyword">let</span> text <span class="token operator">=</span> <span class="token string">'Here are apples and apPleS'</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token keyword">let</span> regex <span class="token operator">=</span> <span class="token regex"><span class="token regex-delimiter">/</span><span class="token regex-source language-regex">apples</span><span class="token regex-delimiter">/</span><span class="token regex-flags">gi</span></span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="3">
|
||||
</span><span class="code-line line-number" line="4"><span class="token comment">// Output: [ "apples", "apPleS" ]</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token console class-name">console</span><span class="token punctuation">.</span><span class="token method function property-access">log</span><span class="token punctuation">(</span>text<span class="token punctuation">.</span><span class="token method function property-access">match</span><span class="token punctuation">(</span>regex<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
<pre class="language-javascript"><code class="language-javascript code-highlight"><span class="code-line"><span class="token keyword">let</span> text <span class="token operator">=</span> <span class="token string">'Here are apples and apPleS'</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token keyword">let</span> regex <span class="token operator">=</span> <span class="token regex"><span class="token regex-delimiter">/</span><span class="token regex-source language-regex">apples</span><span class="token regex-delimiter">/</span><span class="token regex-flags">gi</span></span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line">
|
||||
</span><span class="code-line"><span class="token comment">// Output: [ "apples", "apPleS" ]</span>
|
||||
</span><span class="code-line"><span class="token console class-name">console</span><span class="token punctuation">.</span><span class="token method function property-access">log</span><span class="token punctuation">(</span>text<span class="token punctuation">.</span><span class="token method function property-access">match</span><span class="token punctuation">(</span>regex<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap col-span-2"><div class="wrap-header h3wrap"><h3 id="split"><a aria-hidden="true" tabindex="-1" href="#split"><span class="icon icon-link"></span></a>split()</h3><div class="wrap-body">
|
||||
<!--rehype:wrap-class=col-span-2-->
|
||||
<pre class="language-javascript"><code class="language-javascript code-highlight"><span class="code-line line-number" line="1"><span class="token keyword">let</span> text <span class="token operator">=</span> <span class="token string">'This 593 string will be brok294en at places where d1gits are.'</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token keyword">let</span> regex <span class="token operator">=</span> <span class="token regex"><span class="token regex-delimiter">/</span><span class="token regex-source language-regex"><span class="token char-set class-name">\d</span><span class="token quantifier number">+</span></span><span class="token regex-delimiter">/</span><span class="token regex-flags">g</span></span>
|
||||
</span><span class="code-line line-number" line="3">
|
||||
</span><span class="code-line line-number" line="4"><span class="token comment">// Output: [ "This ", " string will be brok", "en at places where d", "gits are." ] </span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token console class-name">console</span><span class="token punctuation">.</span><span class="token method function property-access">log</span><span class="token punctuation">(</span>text<span class="token punctuation">.</span><span class="token method function property-access">split</span><span class="token punctuation">(</span>regex<span class="token punctuation">)</span><span class="token punctuation">)</span>
|
||||
<pre class="language-javascript"><code class="language-javascript code-highlight"><span class="code-line"><span class="token keyword">let</span> text <span class="token operator">=</span> <span class="token string">'This 593 string will be brok294en at places where d1gits are.'</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token keyword">let</span> regex <span class="token operator">=</span> <span class="token regex"><span class="token regex-delimiter">/</span><span class="token regex-source language-regex"><span class="token char-set class-name">\d</span><span class="token quantifier number">+</span></span><span class="token regex-delimiter">/</span><span class="token regex-flags">g</span></span>
|
||||
</span><span class="code-line">
|
||||
</span><span class="code-line"><span class="token comment">// Output: [ "This ", " string will be brok", "en at places where d", "gits are." ] </span>
|
||||
</span><span class="code-line"><span class="token console class-name">console</span><span class="token punctuation">.</span><span class="token method function property-access">log</span><span class="token punctuation">(</span>text<span class="token punctuation">.</span><span class="token method function property-access">split</span><span class="token punctuation">(</span>regex<span class="token punctuation">)</span><span class="token punctuation">)</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="matchall"><a aria-hidden="true" tabindex="-1" href="#matchall"><span class="icon icon-link"></span></a>matchAll()</h3><div class="wrap-body">
|
||||
<pre class="language-javascript"><code class="language-javascript code-highlight"><span class="code-line line-number" line="1"><span class="token keyword">let</span> regex <span class="token operator">=</span> <span class="token regex"><span class="token regex-delimiter">/</span><span class="token regex-source language-regex">t<span class="token group punctuation">(</span>e<span class="token group punctuation">)</span><span class="token group punctuation">(</span>st<span class="token group punctuation">(</span><span class="token char-set class-name">\d</span><span class="token quantifier number">?</span><span class="token group punctuation">)</span><span class="token group punctuation">)</span></span><span class="token regex-delimiter">/</span><span class="token regex-flags">g</span></span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token keyword">let</span> text <span class="token operator">=</span> <span class="token string">'test1test2'</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token keyword">let</span> array <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token spread operator">...</span>text<span class="token punctuation">.</span><span class="token method function property-access">matchAll</span><span class="token punctuation">(</span>regex<span class="token punctuation">)</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token comment">// Output: ["test1", "e", "st1", "1"]</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token console class-name">console</span><span class="token punctuation">.</span><span class="token method function property-access">log</span><span class="token punctuation">(</span>array<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="6"><span class="token comment">// Output: ["test2", "e", "st2", "2"]</span>
|
||||
</span><span class="code-line line-number" line="7"><span class="token console class-name">console</span><span class="token punctuation">.</span><span class="token method function property-access">log</span><span class="token punctuation">(</span>array<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
<pre class="language-javascript"><code class="language-javascript code-highlight"><span class="code-line"><span class="token keyword">let</span> regex <span class="token operator">=</span> <span class="token regex"><span class="token regex-delimiter">/</span><span class="token regex-source language-regex">t<span class="token group punctuation">(</span>e<span class="token group punctuation">)</span><span class="token group punctuation">(</span>st<span class="token group punctuation">(</span><span class="token char-set class-name">\d</span><span class="token quantifier number">?</span><span class="token group punctuation">)</span><span class="token group punctuation">)</span></span><span class="token regex-delimiter">/</span><span class="token regex-flags">g</span></span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token keyword">let</span> text <span class="token operator">=</span> <span class="token string">'test1test2'</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token keyword">let</span> array <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token spread operator">...</span>text<span class="token punctuation">.</span><span class="token method function property-access">matchAll</span><span class="token punctuation">(</span>regex<span class="token punctuation">)</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token comment">// Output: ["test1", "e", "st1", "1"]</span>
|
||||
</span><span class="code-line"><span class="token console class-name">console</span><span class="token punctuation">.</span><span class="token method function property-access">log</span><span class="token punctuation">(</span>array<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token comment">// Output: ["test2", "e", "st2", "2"]</span>
|
||||
</span><span class="code-line"><span class="token console class-name">console</span><span class="token punctuation">.</span><span class="token method function property-access">log</span><span class="token punctuation">(</span>array<span class="token punctuation">[</span><span class="token number">1</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"><div class="wrap-header h3wrap"><h3 id="replace"><a aria-hidden="true" tabindex="-1" href="#replace"><span class="icon icon-link"></span></a>replace()</h3><div class="wrap-body">
|
||||
<pre class="language-javascript"><code class="language-javascript code-highlight"><span class="code-line line-number" line="1"><span class="token keyword">let</span> text <span class="token operator">=</span> <span class="token string">'Do you like aPPles?'</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token keyword">let</span> regex <span class="token operator">=</span> <span class="token regex"><span class="token regex-delimiter">/</span><span class="token regex-source language-regex">apples</span><span class="token regex-delimiter">/</span><span class="token regex-flags">i</span></span>
|
||||
</span><span class="code-line line-number" line="3">
|
||||
</span><span class="code-line line-number" line="4"><span class="token comment">// Output: Do you like mangoes?</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token keyword">let</span> result <span class="token operator">=</span> text<span class="token punctuation">.</span><span class="token method function property-access">replace</span><span class="token punctuation">(</span>regex<span class="token punctuation">,</span> <span class="token string">'mangoes'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="6"><span class="token console class-name">console</span><span class="token punctuation">.</span><span class="token method function property-access">log</span><span class="token punctuation">(</span>result<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
<pre class="language-javascript"><code class="language-javascript code-highlight"><span class="code-line"><span class="token keyword">let</span> text <span class="token operator">=</span> <span class="token string">'Do you like aPPles?'</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token keyword">let</span> regex <span class="token operator">=</span> <span class="token regex"><span class="token regex-delimiter">/</span><span class="token regex-source language-regex">apples</span><span class="token regex-delimiter">/</span><span class="token regex-flags">i</span></span>
|
||||
</span><span class="code-line">
|
||||
</span><span class="code-line"><span class="token comment">// Output: Do you like mangoes?</span>
|
||||
</span><span class="code-line"><span class="token keyword">let</span> result <span class="token operator">=</span> text<span class="token punctuation">.</span><span class="token method function property-access">replace</span><span class="token punctuation">(</span>regex<span class="token punctuation">,</span> <span class="token string">'mangoes'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token console class-name">console</span><span class="token punctuation">.</span><span class="token method function property-access">log</span><span class="token punctuation">(</span>result<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="replaceall"><a aria-hidden="true" tabindex="-1" href="#replaceall"><span class="icon icon-link"></span></a>replaceAll()</h3><div class="wrap-body">
|
||||
<pre class="wrap-text"><code class="language-javascript code-highlight"><span class="code-line line-number" line="1"><span class="token keyword">let</span> regex <span class="token operator">=</span> <span class="token regex"><span class="token regex-delimiter">/</span><span class="token regex-source language-regex">apples</span><span class="token regex-delimiter">/</span><span class="token regex-flags">gi</span></span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token keyword">let</span> text <span class="token operator">=</span> <span class="token string">'Here are apples and apPleS'</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token comment">// Output: Here are mangoes and mangoes</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token keyword">let</span> result <span class="token operator">=</span> text<span class="token punctuation">.</span><span class="token method function property-access">replaceAll</span><span class="token punctuation">(</span>regex<span class="token punctuation">,</span> <span class="token string">"mangoes"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token console class-name">console</span><span class="token punctuation">.</span><span class="token method function property-access">log</span><span class="token punctuation">(</span>result<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
<pre class="wrap-text"><code class="language-javascript code-highlight"><span class="code-line"><span class="token keyword">let</span> regex <span class="token operator">=</span> <span class="token regex"><span class="token regex-delimiter">/</span><span class="token regex-source language-regex">apples</span><span class="token regex-delimiter">/</span><span class="token regex-flags">gi</span></span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token keyword">let</span> text <span class="token operator">=</span> <span class="token string">'Here are apples and apPleS'</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token comment">// Output: Here are mangoes and mangoes</span>
|
||||
</span><span class="code-line"><span class="token keyword">let</span> result <span class="token operator">=</span> text<span class="token punctuation">.</span><span class="token method function property-access">replaceAll</span><span class="token punctuation">(</span>regex<span class="token punctuation">,</span> <span class="token string">"mangoes"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token console class-name">console</span><span class="token punctuation">.</span><span class="token method function property-access">log</span><span class="token punctuation">(</span>result<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span></code></pre>
|
||||
<!--rehype:className=wrap-text-->
|
||||
</div></div></div></div></div><div class="wrap"><div class="wrap-header h2wrap"><h2 id="php中的正则表达式"><a aria-hidden="true" tabindex="-1" href="#php中的正则表达式"><span class="icon icon-link"></span></a>PHP中的正则表达式</h2><div class="wrap-body">
|
||||
@ -1976,62 +1976,62 @@
|
||||
|
||||
<table><thead><tr><th align="left">:-</th><th>-</th></tr></thead><tbody><tr><td align="left"><code>preg_match()</code></td><td>执行正则表达式匹配</td></tr><tr><td align="left"><code>preg_match_all()</code></td><td>执行全局正则表达式匹配</td></tr><tr><td align="left"><code>preg_replace_callback()</code></td><td>使用回调执行正则表达式搜索和替换</td></tr><tr><td align="left"><code>preg_replace()</code></td><td>执行正则表达式搜索和替换</td></tr><tr><td align="left"><code>preg_split()</code></td><td>按正则表达式模式拆分字符串</td></tr><tr><td align="left"><code>preg_grep()</code></td><td>返回与模式匹配的数组条目</td></tr></tbody></table>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="preg_replace"><a aria-hidden="true" tabindex="-1" href="#preg_replace"><span class="icon icon-link"></span></a>preg_replace</h3><div class="wrap-body">
|
||||
<pre class="wrap-text"><code class="language-php code-highlight"><span class="code-line line-number" line="1"><span class="token variable">$str</span> <span class="token operator">=</span> <span class="token string double-quoted-string">"Visit Microsoft!"</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token variable">$regex</span> <span class="token operator">=</span> <span class="token string double-quoted-string">"/microsoft/i"</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token comment">// Output: Visit QuickRef!</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token keyword">echo</span> <span class="token function">preg_replace</span><span class="token punctuation">(</span><span class="token variable">$regex</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"QuickRef"</span><span class="token punctuation">,</span> <span class="token variable">$str</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
<pre class="wrap-text"><code class="language-php code-highlight"><span class="code-line"><span class="token variable">$str</span> <span class="token operator">=</span> <span class="token string double-quoted-string">"Visit Microsoft!"</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token variable">$regex</span> <span class="token operator">=</span> <span class="token string double-quoted-string">"/microsoft/i"</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token comment">// Output: Visit QuickRef!</span>
|
||||
</span><span class="code-line"><span class="token keyword">echo</span> <span class="token function">preg_replace</span><span class="token punctuation">(</span><span class="token variable">$regex</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"QuickRef"</span><span class="token punctuation">,</span> <span class="token variable">$str</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span></code></pre>
|
||||
<!--rehype:className=wrap-text-->
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="preg_match"><a aria-hidden="true" tabindex="-1" href="#preg_match"><span class="icon icon-link"></span></a>preg_match</h3><div class="wrap-body">
|
||||
<pre class="language-php"><code class="language-php code-highlight"><span class="code-line line-number" line="1"><span class="token variable">$str</span> <span class="token operator">=</span> <span class="token string double-quoted-string">"Visit QuickRef"</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token variable">$regex</span> <span class="token operator">=</span> <span class="token string double-quoted-string">"#quickref#i"</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token comment">// Output: 1</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token keyword">echo</span> <span class="token function">preg_match</span><span class="token punctuation">(</span><span class="token variable">$regex</span><span class="token punctuation">,</span> <span class="token variable">$str</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
<pre class="language-php"><code class="language-php code-highlight"><span class="code-line"><span class="token variable">$str</span> <span class="token operator">=</span> <span class="token string double-quoted-string">"Visit QuickRef"</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token variable">$regex</span> <span class="token operator">=</span> <span class="token string double-quoted-string">"#quickref#i"</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token comment">// Output: 1</span>
|
||||
</span><span class="code-line"><span class="token keyword">echo</span> <span class="token function">preg_match</span><span class="token punctuation">(</span><span class="token variable">$regex</span><span class="token punctuation">,</span> <span class="token variable">$str</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap col-span-2 row-span-2"><div class="wrap-header h3wrap"><h3 id="preg_matchall"><a aria-hidden="true" tabindex="-1" href="#preg_matchall"><span class="icon icon-link"></span></a>preg_matchall</h3><div class="wrap-body">
|
||||
<!--rehype:wrap-class=col-span-2 row-span-2-->
|
||||
<pre class="language-php"><code class="language-php code-highlight"><span class="code-line line-number" line="1"><span class="token variable">$regex</span> <span class="token operator">=</span> <span class="token string double-quoted-string">"/[a-zA-Z]+ (\d+)/"</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token variable">$input_str</span> <span class="token operator">=</span> <span class="token string double-quoted-string">"June 24, August 13, and December 30"</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token function">preg_match_all</span><span class="token punctuation">(</span><span class="token variable">$regex</span><span class="token punctuation">,</span> <span class="token variable">$input_str</span><span class="token punctuation">,</span> <span class="token variable">$matches_out</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token comment">// Output: 2</span>
|
||||
</span><span class="code-line line-number" line="5"> <span class="token keyword">echo</span> <span class="token function">count</span><span class="token punctuation">(</span><span class="token variable">$matches_out</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="6"> <span class="token comment">// Output: 3</span>
|
||||
</span><span class="code-line line-number" line="7"> <span class="token keyword">echo</span> <span class="token function">count</span><span class="token punctuation">(</span><span class="token variable">$matches_out</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="8"> <span class="token comment">// Output: Array("June 24", "August 13", "December 30")</span>
|
||||
</span><span class="code-line line-number" line="9"> <span class="token function">print_r</span><span class="token punctuation">(</span><span class="token variable">$matches_out</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="10"> <span class="token comment">// Output: Array("24", "13", "30")</span>
|
||||
</span><span class="code-line line-number" line="11"> <span class="token function">print_r</span><span class="token punctuation">(</span><span class="token variable">$matches_out</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="12"><span class="token punctuation">}</span>
|
||||
<pre class="language-php"><code class="language-php code-highlight"><span class="code-line"><span class="token variable">$regex</span> <span class="token operator">=</span> <span class="token string double-quoted-string">"/[a-zA-Z]+ (\d+)/"</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token variable">$input_str</span> <span class="token operator">=</span> <span class="token string double-quoted-string">"June 24, August 13, and December 30"</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token function">preg_match_all</span><span class="token punctuation">(</span><span class="token variable">$regex</span><span class="token punctuation">,</span> <span class="token variable">$input_str</span><span class="token punctuation">,</span> <span class="token variable">$matches_out</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token comment">// Output: 2</span>
|
||||
</span><span class="code-line"> <span class="token keyword">echo</span> <span class="token function">count</span><span class="token punctuation">(</span><span class="token variable">$matches_out</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"> <span class="token comment">// Output: 3</span>
|
||||
</span><span class="code-line"> <span class="token keyword">echo</span> <span class="token function">count</span><span class="token punctuation">(</span><span class="token variable">$matches_out</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"> <span class="token comment">// Output: Array("June 24", "August 13", "December 30")</span>
|
||||
</span><span class="code-line"> <span class="token function">print_r</span><span class="token punctuation">(</span><span class="token variable">$matches_out</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"> <span class="token comment">// Output: Array("24", "13", "30")</span>
|
||||
</span><span class="code-line"> <span class="token function">print_r</span><span class="token punctuation">(</span><span class="token variable">$matches_out</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="preg_grep"><a aria-hidden="true" tabindex="-1" href="#preg_grep"><span class="icon icon-link"></span></a>preg_grep</h3><div class="wrap-body">
|
||||
<pre class="language-php"><code class="language-php code-highlight"><span class="code-line line-number" line="1"><span class="token variable">$arr</span> <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token string double-quoted-string">"Jane"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"jane"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"Joan"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"JANE"</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token variable">$regex</span> <span class="token operator">=</span> <span class="token string double-quoted-string">"/Jane/"</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token comment">// Output: Jane</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token keyword">echo</span> <span class="token function">preg_grep</span><span class="token punctuation">(</span><span class="token variable">$regex</span><span class="token punctuation">,</span> <span class="token variable">$arr</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
<pre class="language-php"><code class="language-php code-highlight"><span class="code-line"><span class="token variable">$arr</span> <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token string double-quoted-string">"Jane"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"jane"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"Joan"</span><span class="token punctuation">,</span> <span class="token string double-quoted-string">"JANE"</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token variable">$regex</span> <span class="token operator">=</span> <span class="token string double-quoted-string">"/Jane/"</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token comment">// Output: Jane</span>
|
||||
</span><span class="code-line"><span class="token keyword">echo</span> <span class="token function">preg_grep</span><span class="token punctuation">(</span><span class="token variable">$regex</span><span class="token punctuation">,</span> <span class="token variable">$arr</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap col-span-2"><div class="wrap-header h3wrap"><h3 id="preg_split"><a aria-hidden="true" tabindex="-1" href="#preg_split"><span class="icon icon-link"></span></a>preg_split</h3><div class="wrap-body">
|
||||
<!--rehype:wrap-class=col-span-2-->
|
||||
<pre class="language-php"><code class="language-php code-highlight"><span class="code-line line-number" line="1"><span class="token variable">$str</span> <span class="token operator">=</span> <span class="token string double-quoted-string">"Jane\tKate\nLucy Marion"</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token variable">$regex</span> <span class="token operator">=</span> <span class="token string double-quoted-string">"@\s@"</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token comment">// Output: Array("Jane", "Kate", "Lucy", "Marion")</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token function">print_r</span><span class="token punctuation">(</span><span class="token function">preg_split</span><span class="token punctuation">(</span><span class="token variable">$regex</span><span class="token punctuation">,</span> <span class="token variable">$str</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
<pre class="language-php"><code class="language-php code-highlight"><span class="code-line"><span class="token variable">$str</span> <span class="token operator">=</span> <span class="token string double-quoted-string">"Jane\tKate\nLucy Marion"</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token variable">$regex</span> <span class="token operator">=</span> <span class="token string double-quoted-string">"@\s@"</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token comment">// Output: Array("Jane", "Kate", "Lucy", "Marion")</span>
|
||||
</span><span class="code-line"><span class="token function">print_r</span><span class="token punctuation">(</span><span class="token function">preg_split</span><span class="token punctuation">(</span><span class="token variable">$regex</span><span class="token punctuation">,</span> <span class="token variable">$str</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap"><div class="wrap-header h2wrap"><h2 id="java-中的正则表达式"><a aria-hidden="true" tabindex="-1" href="#java-中的正则表达式"><span class="icon icon-link"></span></a>Java 中的正则表达式</h2><div class="wrap-body">
|
||||
</div></div><div class="h2wrap-body"><div class="wrap col-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=col-span-2-->
|
||||
</div></div><div class="h3wrap-body"><div class="wrap"><div class="wrap-header h4wrap"><h4 id="第一种方式"><a aria-hidden="true" tabindex="-1" href="#第一种方式"><span class="icon icon-link"></span></a>第一种方式</h4><div class="wrap-body">
|
||||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line line-number" line="1"><span class="token class-name">Pattern</span> p <span class="token operator">=</span> <span class="token class-name">Pattern</span><span class="token punctuation">.</span><span class="token function">compile</span><span class="token punctuation">(</span><span class="token string">".s"</span><span class="token punctuation">,</span> <span class="token class-name">Pattern</span><span class="token punctuation">.</span><span class="token constant">CASE_INSENSITIVE</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token class-name">Matcher</span> m <span class="token operator">=</span> p<span class="token punctuation">.</span><span class="token function">matcher</span><span class="token punctuation">(</span><span class="token string">"aS"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token keyword">boolean</span> s1 <span class="token operator">=</span> m<span class="token punctuation">.</span><span class="token function">matches</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>s1<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// Outputs: true</span>
|
||||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token class-name">Pattern</span> p <span class="token operator">=</span> <span class="token class-name">Pattern</span><span class="token punctuation">.</span><span class="token function">compile</span><span class="token punctuation">(</span><span class="token string">".s"</span><span class="token punctuation">,</span> <span class="token class-name">Pattern</span><span class="token punctuation">.</span><span class="token constant">CASE_INSENSITIVE</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token class-name">Matcher</span> m <span class="token operator">=</span> p<span class="token punctuation">.</span><span class="token function">matcher</span><span class="token punctuation">(</span><span class="token string">"aS"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token keyword">boolean</span> s1 <span class="token operator">=</span> m<span class="token punctuation">.</span><span class="token function">matches</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>s1<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// Outputs: true</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h4wrap"><h4 id="第二种方式"><a aria-hidden="true" tabindex="-1" href="#第二种方式"><span class="icon icon-link"></span></a>第二种方式</h4><div class="wrap-body">
|
||||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line line-number" line="1"><span class="token keyword">boolean</span> s2 <span class="token operator">=</span> <span class="token class-name">Pattern</span><span class="token punctuation">.</span><span class="token function">compile</span><span class="token punctuation">(</span><span class="token string">"[0-9]+"</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">matcher</span><span class="token punctuation">(</span><span class="token string">"123"</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">matches</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>s2<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// Outputs: true</span>
|
||||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token keyword">boolean</span> s2 <span class="token operator">=</span> <span class="token class-name">Pattern</span><span class="token punctuation">.</span><span class="token function">compile</span><span class="token punctuation">(</span><span class="token string">"[0-9]+"</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">matcher</span><span class="token punctuation">(</span><span class="token string">"123"</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">matches</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>s2<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// Outputs: true</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h4wrap"><h4 id="第三种方式"><a aria-hidden="true" tabindex="-1" href="#第三种方式"><span class="icon icon-link"></span></a>第三种方式</h4><div class="wrap-body">
|
||||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line line-number" line="1"><span class="token keyword">boolean</span> s3 <span class="token operator">=</span> <span class="token class-name">Pattern</span><span class="token punctuation">.</span><span class="token function">matches</span><span class="token punctuation">(</span><span class="token string">".s"</span><span class="token punctuation">,</span> <span class="token string">"XXXX"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>s3<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// Outputs: false</span>
|
||||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token keyword">boolean</span> s3 <span class="token operator">=</span> <span class="token class-name">Pattern</span><span class="token punctuation">.</span><span class="token function">matches</span><span class="token punctuation">(</span><span class="token string">".s"</span><span class="token punctuation">,</span> <span class="token string">"XXXX"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>s3<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// Outputs: false</span>
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap"><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">
|
||||
|
||||
@ -2098,24 +2098,24 @@
|
||||
</div></div></div></div></div><div class="wrap col-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=col-span-2-->
|
||||
<p>替换句子:</p>
|
||||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line line-number" line="1"><span class="token class-name">String</span> regex <span class="token operator">=</span> <span class="token string">"[A-Z\n]{5}$"</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token class-name">String</span> str <span class="token operator">=</span> <span class="token string">"I like APP\nLE"</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token class-name">Pattern</span> p <span class="token operator">=</span> <span class="token class-name">Pattern</span><span class="token punctuation">.</span><span class="token function">compile</span><span class="token punctuation">(</span>regex<span class="token punctuation">,</span> <span class="token class-name">Pattern</span><span class="token punctuation">.</span><span class="token constant">MULTILINE</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token class-name">Matcher</span> m <span class="token operator">=</span> p<span class="token punctuation">.</span><span class="token function">matcher</span><span class="token punctuation">(</span>str<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token comment">// Outputs: I like Apple!</span>
|
||||
</span><span class="code-line line-number" line="6"><span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>m<span class="token punctuation">.</span><span class="token function">replaceAll</span><span class="token punctuation">(</span><span class="token string">"pple!"</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token class-name">String</span> regex <span class="token operator">=</span> <span class="token string">"[A-Z\n]{5}$"</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token class-name">String</span> str <span class="token operator">=</span> <span class="token string">"I like APP\nLE"</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token class-name">Pattern</span> p <span class="token operator">=</span> <span class="token class-name">Pattern</span><span class="token punctuation">.</span><span class="token function">compile</span><span class="token punctuation">(</span>regex<span class="token punctuation">,</span> <span class="token class-name">Pattern</span><span class="token punctuation">.</span><span class="token constant">MULTILINE</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token class-name">Matcher</span> m <span class="token operator">=</span> p<span class="token punctuation">.</span><span class="token function">matcher</span><span class="token punctuation">(</span>str<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token comment">// Outputs: I like Apple!</span>
|
||||
</span><span class="code-line"><span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>m<span class="token punctuation">.</span><span class="token function">replaceAll</span><span class="token punctuation">(</span><span class="token string">"pple!"</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span></code></pre>
|
||||
<p>所有匹配的数组:</p>
|
||||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line line-number" line="1"><span class="token class-name">String</span> str <span class="token operator">=</span> <span class="token string">"She sells seashells by the Seashore"</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token class-name">String</span> regex <span class="token operator">=</span> <span class="token string">"\\w*se\\w*"</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token class-name">Pattern</span> p <span class="token operator">=</span> <span class="token class-name">Pattern</span><span class="token punctuation">.</span><span class="token function">compile</span><span class="token punctuation">(</span>regex<span class="token punctuation">,</span> <span class="token class-name">Pattern</span><span class="token punctuation">.</span><span class="token constant">CASE_INSENSITIVE</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token class-name">Matcher</span> m <span class="token operator">=</span> p<span class="token punctuation">.</span><span class="token function">matcher</span><span class="token punctuation">(</span>str<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token class-name">List</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">String</span><span class="token punctuation">></span></span> matches <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ArrayList</span><span class="token generics"><span class="token punctuation"><</span><span class="token punctuation">></span></span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="6"><span class="token keyword">while</span> <span class="token punctuation">(</span>m<span class="token punctuation">.</span><span class="token function">find</span><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 line-number" line="7"> matches<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span>m<span class="token punctuation">.</span><span class="token function">group</span><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 line-number" line="8"><span class="token punctuation">}</span>
|
||||
</span><span class="code-line line-number" line="9"><span class="token comment">// Outputs: [sells, seashells, Seashore]</span>
|
||||
</span><span class="code-line line-number" line="10"><span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>matches<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
<pre class="language-java"><code class="language-java code-highlight"><span class="code-line"><span class="token class-name">String</span> str <span class="token operator">=</span> <span class="token string">"She sells seashells by the Seashore"</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token class-name">String</span> regex <span class="token operator">=</span> <span class="token string">"\\w*se\\w*"</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token class-name">Pattern</span> p <span class="token operator">=</span> <span class="token class-name">Pattern</span><span class="token punctuation">.</span><span class="token function">compile</span><span class="token punctuation">(</span>regex<span class="token punctuation">,</span> <span class="token class-name">Pattern</span><span class="token punctuation">.</span><span class="token constant">CASE_INSENSITIVE</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token class-name">Matcher</span> m <span class="token operator">=</span> p<span class="token punctuation">.</span><span class="token function">matcher</span><span class="token punctuation">(</span>str<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token class-name">List</span><span class="token generics"><span class="token punctuation"><</span><span class="token class-name">String</span><span class="token punctuation">></span></span> matches <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ArrayList</span><span class="token generics"><span class="token punctuation"><</span><span class="token punctuation">></span></span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token keyword">while</span> <span class="token punctuation">(</span>m<span class="token punctuation">.</span><span class="token function">find</span><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"> matches<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span>m<span class="token punctuation">.</span><span class="token function">group</span><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 punctuation">}</span>
|
||||
</span><span class="code-line"><span class="token comment">// Outputs: [sells, seashells, Seashore]</span>
|
||||
</span><span class="code-line"><span class="token class-name">System</span><span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>matches<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap"><div class="wrap-header h2wrap"><h2 id="mysql中的正则表达式"><a aria-hidden="true" tabindex="-1" href="#mysql中的正则表达式"><span class="icon icon-link"></span></a>MySQL中的正则表达式</h2><div class="wrap-body">
|
||||
<!--rehype:body-class=cols-2-->
|
||||
@ -2151,62 +2151,62 @@
|
||||
|
||||
<table><thead><tr><th align="left">函数名称</th><th>说明</th></tr></thead><tbody><tr><td align="left"><code>REGEXP </code></td><td>字符串是否匹配正则表达式</td></tr><tr><td align="left"><code>REGEXP_INSTR() </code></td><td>匹配正则表达式的子字符串的起始索引 <br><em>(注意:仅限 MySQL 8.0+)</em></td></tr><tr><td align="left"><code>REGEXP_LIKE() </code></td><td>字符串是否匹配正则表达式 <br><em>(注意:仅 MySQL 8.0+)</em></td></tr><tr><td align="left"><code>REGEXP_REPLACE()</code></td><td>替换匹配正则表达式的子字符串 <br><em>(注意:仅限 MySQL 8.0+)</em></td></tr><tr><td align="left"><code>REGEXP_SUBSTR() </code></td><td>返回匹配正则表达式的子字符串 <br><em>(注意:仅 MySQL 8.0+)</em></td></tr></tbody></table>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="regexp"><a aria-hidden="true" tabindex="-1" href="#regexp"><span class="icon icon-link"></span></a>REGEXP</h3><div class="wrap-body">
|
||||
<pre class="language-sql"><code class="language-sql code-highlight"><span class="code-line line-number" line="1">expr <span class="token operator">REGEXP</span> pat
|
||||
<pre class="language-sql"><code class="language-sql code-highlight"><span class="code-line">expr <span class="token operator">REGEXP</span> pat
|
||||
</span></code></pre>
|
||||
</div></div><div class="h3wrap-body"><div class="wrap"><div class="wrap-header h4wrap"><h4 id="examples"><a aria-hidden="true" tabindex="-1" href="#examples"><span class="icon icon-link"></span></a>Examples</h4><div class="wrap-body">
|
||||
<pre class="language-sql"><code class="language-sql code-highlight"><span class="code-line line-number" line="1">mysql<span class="token operator">></span> <span class="token keyword">SELECT</span> <span class="token string">'abc'</span> <span class="token operator">REGEXP</span> <span class="token string">'^[a-d]'</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token number">1</span>
|
||||
</span><span class="code-line line-number" line="3">mysql<span class="token operator">></span> <span class="token keyword">SELECT</span> name <span class="token keyword">FROM</span> cities <span class="token keyword">WHERE</span> name <span class="token operator">REGEXP</span> <span class="token string">'^A'</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="4">mysql<span class="token operator">></span> <span class="token keyword">SELECT</span> name <span class="token keyword">FROM</span> cities <span class="token keyword">WHERE</span> name <span class="token operator">NOT</span> <span class="token operator">REGEXP</span> <span class="token string">'^A'</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="5">mysql<span class="token operator">></span> <span class="token keyword">SELECT</span> name <span class="token keyword">FROM</span> cities <span class="token keyword">WHERE</span> name <span class="token operator">REGEXP</span> <span class="token string">'A|B|R'</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="6">mysql<span class="token operator">></span> <span class="token keyword">SELECT</span> <span class="token string">'a'</span> <span class="token operator">REGEXP</span> <span class="token string">'A'</span><span class="token punctuation">,</span> <span class="token string">'a'</span> <span class="token operator">REGEXP</span> <span class="token keyword">BINARY</span> <span class="token string">'A'</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="7"><span class="token number">1</span> <span class="token number">0</span>
|
||||
<pre class="language-sql"><code class="language-sql code-highlight"><span class="code-line">mysql<span class="token operator">></span> <span class="token keyword">SELECT</span> <span class="token string">'abc'</span> <span class="token operator">REGEXP</span> <span class="token string">'^[a-d]'</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token number">1</span>
|
||||
</span><span class="code-line">mysql<span class="token operator">></span> <span class="token keyword">SELECT</span> name <span class="token keyword">FROM</span> cities <span class="token keyword">WHERE</span> name <span class="token operator">REGEXP</span> <span class="token string">'^A'</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line">mysql<span class="token operator">></span> <span class="token keyword">SELECT</span> name <span class="token keyword">FROM</span> cities <span class="token keyword">WHERE</span> name <span class="token operator">NOT</span> <span class="token operator">REGEXP</span> <span class="token string">'^A'</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line">mysql<span class="token operator">></span> <span class="token keyword">SELECT</span> name <span class="token keyword">FROM</span> cities <span class="token keyword">WHERE</span> name <span class="token operator">REGEXP</span> <span class="token string">'A|B|R'</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line">mysql<span class="token operator">></span> <span class="token keyword">SELECT</span> <span class="token string">'a'</span> <span class="token operator">REGEXP</span> <span class="token string">'A'</span><span class="token punctuation">,</span> <span class="token string">'a'</span> <span class="token operator">REGEXP</span> <span class="token keyword">BINARY</span> <span class="token string">'A'</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token number">1</span> <span class="token number">0</span>
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="regexp_replace"><a aria-hidden="true" tabindex="-1" href="#regexp_replace"><span class="icon icon-link"></span></a>REGEXP_REPLACE</h3><div class="wrap-body">
|
||||
<pre><code class="code-highlight"><span class="code-line line-number" line="1">REGEXP_REPLACE(expr, pat, repl[, pos[, occurrence[, match_type]]])
|
||||
<pre><code class="code-highlight"><span class="code-line">REGEXP_REPLACE(expr, pat, repl[, pos[, occurrence[, match_type]]])
|
||||
</span></code></pre>
|
||||
</div></div><div class="h3wrap-body"><div class="wrap"><div class="wrap-header h4wrap"><h4 id="例子-1"><a aria-hidden="true" tabindex="-1" href="#例子-1"><span class="icon icon-link"></span></a>例子</h4><div class="wrap-body">
|
||||
<pre class="language-sql"><code class="language-sql code-highlight"><span class="code-line line-number" line="1">mysql<span class="token operator">></span> <span class="token keyword">SELECT</span> REGEXP_REPLACE<span class="token punctuation">(</span><span class="token string">'a b c'</span><span class="token punctuation">,</span> <span class="token string">'b'</span><span class="token punctuation">,</span> <span class="token string">'X'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="2">a X c
|
||||
</span><span class="code-line line-number" line="3">mysql<span class="token operator">></span> <span class="token keyword">SELECT</span> REGEXP_REPLACE<span class="token punctuation">(</span><span class="token string">'abc ghi'</span><span class="token punctuation">,</span> <span class="token string">'[a-z]+'</span><span class="token punctuation">,</span> <span class="token string">'X'</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="4">abc X
|
||||
<pre class="language-sql"><code class="language-sql code-highlight"><span class="code-line">mysql<span class="token operator">></span> <span class="token keyword">SELECT</span> REGEXP_REPLACE<span class="token punctuation">(</span><span class="token string">'a b c'</span><span class="token punctuation">,</span> <span class="token string">'b'</span><span class="token punctuation">,</span> <span class="token string">'X'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line">a X c
|
||||
</span><span class="code-line">mysql<span class="token operator">></span> <span class="token keyword">SELECT</span> REGEXP_REPLACE<span class="token punctuation">(</span><span class="token string">'abc ghi'</span><span class="token punctuation">,</span> <span class="token string">'[a-z]+'</span><span class="token punctuation">,</span> <span class="token string">'X'</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line">abc X
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="regexp_substr"><a aria-hidden="true" tabindex="-1" href="#regexp_substr"><span class="icon icon-link"></span></a>REGEXP_SUBSTR</h3><div class="wrap-body">
|
||||
<pre><code class="code-highlight"><span class="code-line line-number" line="1">REGEXP_SUBSTR(expr, pat[, pos[, occurrence[, match_type]]])
|
||||
<pre><code class="code-highlight"><span class="code-line">REGEXP_SUBSTR(expr, pat[, pos[, occurrence[, match_type]]])
|
||||
</span></code></pre>
|
||||
</div></div><div class="h3wrap-body"><div class="wrap"><div class="wrap-header h4wrap"><h4 id="例子-2"><a aria-hidden="true" tabindex="-1" href="#例子-2"><span class="icon icon-link"></span></a>例子</h4><div class="wrap-body">
|
||||
<pre class="language-sql"><code class="language-sql code-highlight"><span class="code-line line-number" line="1">mysql<span class="token operator">></span> <span class="token keyword">SELECT</span> REGEXP_SUBSTR<span class="token punctuation">(</span><span class="token string">'abc def ghi'</span><span class="token punctuation">,</span> <span class="token string">'[a-z]+'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="2">abc
|
||||
</span><span class="code-line line-number" line="3">mysql<span class="token operator">></span> <span class="token keyword">SELECT</span> REGEXP_SUBSTR<span class="token punctuation">(</span><span class="token string">'abc def ghi'</span><span class="token punctuation">,</span> <span class="token string">'[a-z]+'</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="4">ghi
|
||||
<pre class="language-sql"><code class="language-sql code-highlight"><span class="code-line">mysql<span class="token operator">></span> <span class="token keyword">SELECT</span> REGEXP_SUBSTR<span class="token punctuation">(</span><span class="token string">'abc def ghi'</span><span class="token punctuation">,</span> <span class="token string">'[a-z]+'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line">abc
|
||||
</span><span class="code-line">mysql<span class="token operator">></span> <span class="token keyword">SELECT</span> REGEXP_SUBSTR<span class="token punctuation">(</span><span class="token string">'abc def ghi'</span><span class="token punctuation">,</span> <span class="token string">'[a-z]+'</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line">ghi
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="regexp_like"><a aria-hidden="true" tabindex="-1" href="#regexp_like"><span class="icon icon-link"></span></a>REGEXP_LIKE</h3><div class="wrap-body">
|
||||
<pre><code class="code-highlight"><span class="code-line line-number" line="1">REGEXP_LIKE(expr, pat[, match_type])
|
||||
<pre><code class="code-highlight"><span class="code-line">REGEXP_LIKE(expr, pat[, match_type])
|
||||
</span></code></pre>
|
||||
</div></div><div class="h3wrap-body"><div class="wrap"><div class="wrap-header h4wrap"><h4 id="例子-3"><a aria-hidden="true" tabindex="-1" href="#例子-3"><span class="icon icon-link"></span></a>例子</h4><div class="wrap-body">
|
||||
<pre class="language-sql"><code class="language-sql code-highlight"><span class="code-line line-number" line="1">mysql<span class="token operator">></span> <span class="token keyword">SELECT</span> regexp_like<span class="token punctuation">(</span><span class="token string">'aba'</span><span class="token punctuation">,</span> <span class="token string">'b+'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token number">1</span>
|
||||
</span><span class="code-line line-number" line="3">mysql<span class="token operator">></span> <span class="token keyword">SELECT</span> regexp_like<span class="token punctuation">(</span><span class="token string">'aba'</span><span class="token punctuation">,</span> <span class="token string">'b{2}'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token number">0</span>
|
||||
</span><span class="code-line line-number" line="5">mysql<span class="token operator">></span> <span class="token comment"># i: case-insensitive</span>
|
||||
</span><span class="code-line line-number" line="6">mysql<span class="token operator">></span> <span class="token keyword">SELECT</span> regexp_like<span class="token punctuation">(</span><span class="token string">'Abba'</span><span class="token punctuation">,</span> <span class="token string">'ABBA'</span><span class="token punctuation">,</span> <span class="token string">'i'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="7"><span class="token number">1</span>
|
||||
</span><span class="code-line line-number" line="8">mysql<span class="token operator">></span> <span class="token comment"># m: multi-line</span>
|
||||
</span><span class="code-line line-number" line="9">mysql<span class="token operator">></span> <span class="token keyword">SELECT</span> regexp_like<span class="token punctuation">(</span><span class="token string">'a\nb\nc'</span><span class="token punctuation">,</span> <span class="token string">'^b$'</span><span class="token punctuation">,</span> <span class="token string">'m'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="10"><span class="token number">1</span>
|
||||
<pre class="language-sql"><code class="language-sql code-highlight"><span class="code-line">mysql<span class="token operator">></span> <span class="token keyword">SELECT</span> regexp_like<span class="token punctuation">(</span><span class="token string">'aba'</span><span class="token punctuation">,</span> <span class="token string">'b+'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token number">1</span>
|
||||
</span><span class="code-line">mysql<span class="token operator">></span> <span class="token keyword">SELECT</span> regexp_like<span class="token punctuation">(</span><span class="token string">'aba'</span><span class="token punctuation">,</span> <span class="token string">'b{2}'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token number">0</span>
|
||||
</span><span class="code-line">mysql<span class="token operator">></span> <span class="token comment"># i: case-insensitive</span>
|
||||
</span><span class="code-line">mysql<span class="token operator">></span> <span class="token keyword">SELECT</span> regexp_like<span class="token punctuation">(</span><span class="token string">'Abba'</span><span class="token punctuation">,</span> <span class="token string">'ABBA'</span><span class="token punctuation">,</span> <span class="token string">'i'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token number">1</span>
|
||||
</span><span class="code-line">mysql<span class="token operator">></span> <span class="token comment"># m: multi-line</span>
|
||||
</span><span class="code-line">mysql<span class="token operator">></span> <span class="token keyword">SELECT</span> regexp_like<span class="token punctuation">(</span><span class="token string">'a\nb\nc'</span><span class="token punctuation">,</span> <span class="token string">'^b$'</span><span class="token punctuation">,</span> <span class="token string">'m'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token number">1</span>
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="regexp_instr"><a aria-hidden="true" tabindex="-1" href="#regexp_instr"><span class="icon icon-link"></span></a>REGEXP_INSTR</h3><div class="wrap-body">
|
||||
<pre><code class="language-{.wrap} code-highlight"><span class="code-line line-number" line="1">REGEXP_INSTR(expr, pat[, pos[, occurrence[, return_option[, match_type]]]])
|
||||
<pre><code class="language-{.wrap} code-highlight"><span class="code-line">REGEXP_INSTR(expr, pat[, pos[, occurrence[, return_option[, match_type]]]])
|
||||
</span></code></pre>
|
||||
</div></div><div class="h3wrap-body"><div class="wrap"><div class="wrap-header h4wrap"><h4 id="例子-4"><a aria-hidden="true" tabindex="-1" href="#例子-4"><span class="icon icon-link"></span></a>例子</h4><div class="wrap-body">
|
||||
<pre class="language-sql"><code class="language-sql code-highlight"><span class="code-line line-number" line="1">mysql<span class="token operator">></span> <span class="token keyword">SELECT</span> regexp_instr<span class="token punctuation">(</span><span class="token string">'aa aaa aaaa'</span><span class="token punctuation">,</span> <span class="token string">'a{3}'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token number">2</span>
|
||||
</span><span class="code-line line-number" line="3">mysql<span class="token operator">></span> <span class="token keyword">SELECT</span> regexp_instr<span class="token punctuation">(</span><span class="token string">'abba'</span><span class="token punctuation">,</span> <span class="token string">'b{2}'</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token number">2</span>
|
||||
</span><span class="code-line line-number" line="5">mysql<span class="token operator">></span> <span class="token keyword">SELECT</span> regexp_instr<span class="token punctuation">(</span><span class="token string">'abbabba'</span><span class="token punctuation">,</span> <span class="token string">'b{2}'</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="6"><span class="token number">5</span>
|
||||
</span><span class="code-line line-number" line="7">mysql<span class="token operator">></span> <span class="token keyword">SELECT</span> regexp_instr<span class="token punctuation">(</span><span class="token string">'abbabba'</span><span class="token punctuation">,</span> <span class="token string">'b{2}'</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line line-number" line="8"><span class="token number">7</span>
|
||||
<pre class="language-sql"><code class="language-sql code-highlight"><span class="code-line">mysql<span class="token operator">></span> <span class="token keyword">SELECT</span> regexp_instr<span class="token punctuation">(</span><span class="token string">'aa aaa aaaa'</span><span class="token punctuation">,</span> <span class="token string">'a{3}'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token number">2</span>
|
||||
</span><span class="code-line">mysql<span class="token operator">></span> <span class="token keyword">SELECT</span> regexp_instr<span class="token punctuation">(</span><span class="token string">'abba'</span><span class="token punctuation">,</span> <span class="token string">'b{2}'</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token number">2</span>
|
||||
</span><span class="code-line">mysql<span class="token operator">></span> <span class="token keyword">SELECT</span> regexp_instr<span class="token punctuation">(</span><span class="token string">'abbabba'</span><span class="token punctuation">,</span> <span class="token string">'b{2}'</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token number">5</span>
|
||||
</span><span class="code-line">mysql<span class="token operator">></span> <span class="token keyword">SELECT</span> regexp_instr<span class="token punctuation">(</span><span class="token string">'abbabba'</span><span class="token punctuation">,</span> <span class="token string">'b{2}'</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||||
</span><span class="code-line"><span class="token number">7</span>
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div></div></div><div class="wrap"><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">
|
||||
<ul>
|
||||
|
@ -38,12 +38,12 @@
|
||||
</div></header><div class="h1wrap-body"><div class="wrap"><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"><div class="wrap-header h3wrap"><h3 id="sed-用法"><a aria-hidden="true" tabindex="-1" href="#sed-用法"><span class="icon icon-link"></span></a>Sed 用法</h3><div class="wrap-body">
|
||||
<p>语法</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">sed</span> <span class="token punctuation">[</span>options<span class="token punctuation">]</span> <span class="token builtin class-name">command</span> <span class="token punctuation">[</span>input-file<span class="token punctuation">]</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">sed</span> <span class="token punctuation">[</span>options<span class="token punctuation">]</span> <span class="token builtin class-name">command</span> <span class="token punctuation">[</span>input-file<span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
<p>带管道</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">cat</span> report.txt <span class="token operator">|</span> <span class="token function">sed</span> <span class="token string">'s/Nick/John/g'</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">cat</span> report.txt <span class="token operator">|</span> <span class="token function">sed</span> <span class="token string">'s/Nick/John/g'</span>
|
||||
</span></code></pre>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token builtin class-name">echo</span> <span class="token string">'123abc'</span> <span class="token operator">|</span> <span class="token function">sed</span> <span class="token string">'s/[0-9]+//g'</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token builtin class-name">echo</span> <span class="token string">'123abc'</span> <span class="token operator">|</span> <span class="token function">sed</span> <span class="token string">'s/[0-9]+//g'</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap col-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=col-span-2-->
|
||||
@ -85,22 +85,22 @@
|
||||
<table class="show-header"><thead><tr><th>参数</th><th>示例</th><th>描述</th></tr></thead><tbody><tr><td><code>-i</code></td><td>sed -ibak 's/On/Off/' php.ini</td><td>直接备份和修改输入文件</td></tr><tr><td><code>-E</code></td><td>sed -E 's/[0-9]+//g' input-file</td><td>使用扩展正则表达式</td></tr><tr><td><code>-n</code></td><td>sed -n '3 p' config.conf</td><td>禁止默认图案空间打印</td></tr><tr><td><code>-f</code></td><td>sed -f script.sed config.conf</td><td>执行 sed 脚本文件</td></tr><tr><td><code>-e</code></td><td>sed -e 'command1' -e 'command2' input-file</td><td>执行多个 sed 命令</td></tr></tbody></table>
|
||||
<!--rehype:className=show-header-->
|
||||
</div></div></div><div class="wrap"><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-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token builtin class-name">echo</span> <span class="token string">"hello world"</span> <span class="token operator">|</span> <span class="token function">sed</span> <span class="token parameter variable">-e</span> <span class="token string">'s/h/H/g'</span> <span class="token parameter variable">-e</span> <span class="token string">'s/w/W/g'</span>
|
||||
</span><span class="code-line line-number" line="2">Hello World
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token builtin class-name">echo</span> <span class="token string">"hello world"</span> <span class="token operator">|</span> <span class="token function">sed</span> <span class="token parameter variable">-e</span> <span class="token string">'s/h/H/g'</span> <span class="token parameter variable">-e</span> <span class="token string">'s/w/W/g'</span>
|
||||
</span><span class="code-line">Hello World
|
||||
</span></code></pre>
|
||||
<p>使用 <code>-e</code> 执行多个 sed 命令</p>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="sed-脚本"><a aria-hidden="true" tabindex="-1" href="#sed-脚本"><span class="icon icon-link"></span></a>Sed 脚本</h3><div class="wrap-body">
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token builtin class-name">echo</span> <span class="token string">'s/h/H/g'</span> <span class="token operator">>></span> hello.sed
|
||||
</span><span class="code-line line-number" line="2">$ <span class="token builtin class-name">echo</span> <span class="token string">'s/w/W/g'</span> <span class="token operator">>></span> hello.sed
|
||||
</span><span class="code-line line-number" line="3">$ <span class="token builtin class-name">echo</span> <span class="token string">"hello world"</span> <span class="token operator">|</span> <span class="token function">sed</span> <span class="token parameter variable">-f</span> hello.sed
|
||||
</span><span class="code-line line-number" line="4">Hello World
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token builtin class-name">echo</span> <span class="token string">'s/h/H/g'</span> <span class="token operator">>></span> hello.sed
|
||||
</span><span class="code-line">$ <span class="token builtin class-name">echo</span> <span class="token string">'s/w/W/g'</span> <span class="token operator">>></span> hello.sed
|
||||
</span><span class="code-line">$ <span class="token builtin class-name">echo</span> <span class="token string">"hello world"</span> <span class="token operator">|</span> <span class="token function">sed</span> <span class="token parameter variable">-f</span> hello.sed
|
||||
</span><span class="code-line">Hello World
|
||||
</span></code></pre>
|
||||
<p>使用 <code>-f</code> 执行 sed 脚本文件</p>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="examples"><a aria-hidden="true" tabindex="-1" href="#examples"><span class="icon icon-link"></span></a>Examples</h3><div class="wrap-body">
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">sed</span> <span class="token string">'s/old/new/g'</span> file.txt
|
||||
</span><span class="code-line line-number" line="2">$ <span class="token function">sed</span> <span class="token string">'s/old/new/g'</span> file.txt <span class="token operator">></span> new.txt
|
||||
</span><span class="code-line line-number" line="3">$ <span class="token function">sed</span> <span class="token string">'s/old/new/g'</span> <span class="token parameter variable">-i</span> file.txt
|
||||
</span><span class="code-line line-number" line="4">$ <span class="token function">sed</span> <span class="token string">'s/old/new/g'</span> <span class="token parameter variable">-i.backup</span> file.txt
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">sed</span> <span class="token string">'s/old/new/g'</span> file.txt
|
||||
</span><span class="code-line">$ <span class="token function">sed</span> <span class="token string">'s/old/new/g'</span> file.txt <span class="token operator">></span> new.txt
|
||||
</span><span class="code-line">$ <span class="token function">sed</span> <span class="token string">'s/old/new/g'</span> <span class="token parameter variable">-i</span> file.txt
|
||||
</span><span class="code-line">$ <span class="token function">sed</span> <span class="token string">'s/old/new/g'</span> <span class="token parameter variable">-i.backup</span> file.txt
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap"><div class="wrap-header h2wrap"><h2 id="sed-命令"><a aria-hidden="true" tabindex="-1" href="#sed-命令"><span class="icon icon-link"></span></a>Sed 命令</h2><div class="wrap-body">
|
||||
</div></div><div class="h2wrap-body"><div class="wrap col-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">
|
||||
@ -183,7 +183,7 @@
|
||||
|
||||
<table><thead><tr><th>Command</th><th>Description</th></tr></thead><tbody><tr><td><code>n</code></td><td>打印模式空间,空模式空间,读取下一行</td></tr><tr><td><code>x</code></td><td>用保持空间交换模式空间</td></tr><tr><td><code>h</code></td><td>复制模式空间以保持空间</td></tr><tr><td><code>H</code></td><td>追加模式空间以保持空间</td></tr><tr><td><code>g</code></td><td>将保持空间复制到模式空间</td></tr><tr><td><code>G</code></td><td>将保持空间附加到模式空间</td></tr></tbody></table>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="flags"><a aria-hidden="true" tabindex="-1" href="#flags"><span class="icon icon-link"></span></a>Flags</h3><div class="wrap-body">
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">sed</span> <span class="token string">'s/old/new/[flags]'</span> <span class="token punctuation">[</span>input-file<span class="token punctuation">]</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">sed</span> <span class="token string">'s/old/new/[flags]'</span> <span class="token punctuation">[</span>input-file<span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
<hr>
|
||||
|
||||
@ -282,107 +282,107 @@
|
||||
</div></div><div class="h2wrap-body"><div class="wrap 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-->
|
||||
<p>替换所有出现的字符串</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">sed</span> <span class="token string">'s/old/new/g'</span> file.txt
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">sed</span> <span class="token string">'s/old/new/g'</span> file.txt
|
||||
</span></code></pre>
|
||||
<p>仅替换第 n 次出现的字符串</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">sed</span> <span class="token string">'s/old/new/2'</span> file.txt
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">sed</span> <span class="token string">'s/old/new/2'</span> file.txt
|
||||
</span></code></pre>
|
||||
<p>仅在第 5 行替换替换字符串</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">sed</span> <span class="token string">'5 s/old/new/'</span> file.txt
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">sed</span> <span class="token string">'5 s/old/new/'</span> file.txt
|
||||
</span></code></pre>
|
||||
<p>将“world”替换为“universe”,但前提是该行以“hello”开头</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">sed</span> <span class="token string">'/hello/s/world/universe/'</span> file.txt
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">sed</span> <span class="token string">'/hello/s/world/universe/'</span> file.txt
|
||||
</span></code></pre>
|
||||
<p>从每行的末尾删除“\”</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">sed</span> <span class="token string">'s/\\$//'</span> file.txt
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">sed</span> <span class="token string">'s/\\$//'</span> file.txt
|
||||
</span></code></pre>
|
||||
<p>删除每行开头的所有空格</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">sed</span> <span class="token string">'s/^\s*//'</span> file.txt
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">sed</span> <span class="token string">'s/^\s*//'</span> file.txt
|
||||
</span></code></pre>
|
||||
<p>删除评论。 即使是那些在行尾的</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">sed</span> <span class="token string">'s/#.*$//'</span> file.txt
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">sed</span> <span class="token string">'s/#.*$//'</span> file.txt
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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">
|
||||
<p>搜索字符串并仅打印匹配的行</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">sed</span> <span class="token parameter variable">-n</span> <span class="token string">'/hello/p'</span> file.txt
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">sed</span> <span class="token parameter variable">-n</span> <span class="token string">'/hello/p'</span> file.txt
|
||||
</span></code></pre>
|
||||
<p>不区分大小写的搜索</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">sed</span> <span class="token parameter variable">-n</span> <span class="token string">'/hello/Ip'</span> file.txt
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">sed</span> <span class="token parameter variable">-n</span> <span class="token string">'/hello/Ip'</span> file.txt
|
||||
</span></code></pre>
|
||||
<p>搜索字符串,但仅输出不匹配的行</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">sed</span> <span class="token parameter variable">-n</span> <span class="token string">'/hello/!p'</span> file.txt
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">sed</span> <span class="token parameter variable">-n</span> <span class="token string">'/hello/!p'</span> file.txt
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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">
|
||||
<p>在第 2 行之后追加一行</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">sed</span> <span class="token string">'2a Text after line 2'</span> file.txt
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">sed</span> <span class="token string">'2a Text after line 2'</span> file.txt
|
||||
</span></code></pre>
|
||||
<p>在文件末尾追加一行</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">sed</span> <span class="token string">'$a THE END!'</span> file.txt
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">sed</span> <span class="token string">'$a THE END!'</span> file.txt
|
||||
</span></code></pre>
|
||||
<p>从第 3 行开始,每 3 行后追加一行</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">sed</span> <span class="token string">'3~3a Some text'</span> file.txt
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">sed</span> <span class="token string">'3~3a Some text'</span> file.txt
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap col-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=col-span-2-->
|
||||
<p>文件的数字行(简单的左对齐)</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">sed</span> <span class="token operator">=</span> file.txt <span class="token operator">|</span> <span class="token function">sed</span> <span class="token string">'N;s/\n/\t/'</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">sed</span> <span class="token operator">=</span> file.txt <span class="token operator">|</span> <span class="token function">sed</span> <span class="token string">'N;s/\n/\t/'</span>
|
||||
</span></code></pre>
|
||||
<p>文件的数字行(数字在左,右对齐)</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">sed</span> <span class="token operator">=</span> file.txt <span class="token operator">|</span> <span class="token function">sed</span> <span class="token string">'N; s/^/ /; s/ *\(.\{6,\}\)\n/\1 /'</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">sed</span> <span class="token operator">=</span> file.txt <span class="token operator">|</span> <span class="token function">sed</span> <span class="token string">'N; s/^/ /; s/ *\(.\{6,\}\)\n/\1 /'</span>
|
||||
</span></code></pre>
|
||||
<p>文件的数字行,但如果行不为空,则仅打印数字</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">sed</span> <span class="token string">'/./='</span> file.txt <span class="token operator">|</span> <span class="token function">sed</span> <span class="token string">'/./N; s/\n/ /'</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">sed</span> <span class="token string">'/./='</span> file.txt <span class="token operator">|</span> <span class="token function">sed</span> <span class="token string">'/./N; s/\n/ /'</span>
|
||||
</span></code></pre>
|
||||
<p>计算行数(模拟“wc -l”)</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">sed</span> <span class="token parameter variable">-n</span> <span class="token string">'$='</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">sed</span> <span class="token parameter variable">-n</span> <span class="token string">'$='</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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">
|
||||
<p>在第 5 行之前插入文本</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">sed</span> <span class="token string">'5i line number five'</span> file.txt
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">sed</span> <span class="token string">'5i line number five'</span> file.txt
|
||||
</span></code></pre>
|
||||
<p>在包含“hello”的每一行之前插入“示例:”</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">sed</span> <span class="token string">'/hello/i Example: '</span> file.txt
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">sed</span> <span class="token string">'/hello/i Example: '</span> file.txt
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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">
|
||||
<p>删除文件中的第 5-7 行</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">sed</span> <span class="token string">'5,7d'</span> file.txt
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">sed</span> <span class="token string">'5,7d'</span> file.txt
|
||||
</span></code></pre>
|
||||
<p>删除从第 3 行开始的每 2 行</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">sed</span> <span class="token string">'3~2d'</span> file.txt
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">sed</span> <span class="token string">'3~2d'</span> file.txt
|
||||
</span></code></pre>
|
||||
<p>删除文件的最后一行</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">sed</span> <span class="token string">'$d'</span> file.txt
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">sed</span> <span class="token string">'$d'</span> file.txt
|
||||
</span></code></pre>
|
||||
<p>删除以“Hello”开头的行</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">sed</span> <span class="token string">'/^Hello/d'</span> file.txt
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">sed</span> <span class="token string">'/^Hello/d'</span> file.txt
|
||||
</span></code></pre>
|
||||
<p>删除所有空行</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">sed</span> <span class="token string">'/^$/d'</span> file.txt
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">sed</span> <span class="token string">'/^$/d'</span> file.txt
|
||||
</span></code></pre>
|
||||
<p>删除以“#”开头的行</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">sed</span> <span class="token string">'/^#/d'</span> file.txt
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">sed</span> <span class="token string">'/^#/d'</span> file.txt
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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">
|
||||
<p>双倍行距</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">sed</span> G
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">sed</span> G
|
||||
</span></code></pre>
|
||||
<p>删除所有空行和双空格</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">sed</span> <span class="token string">'/^$/d;G'</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">sed</span> <span class="token string">'/^$/d;G'</span>
|
||||
</span></code></pre>
|
||||
<p>三倍空间文件</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">sed</span> <span class="token string">'G;G'</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">sed</span> <span class="token string">'G;G'</span>
|
||||
</span></code></pre>
|
||||
<p>撤消双倍行距</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">sed</span> <span class="token string">'n;d'</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">sed</span> <span class="token string">'n;d'</span>
|
||||
</span></code></pre>
|
||||
<p>在匹配“正则表达式”的行上方插入一个空行</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">sed</span> <span class="token string">'/regex/{x;p;x;}'</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">sed</span> <span class="token string">'/regex/{x;p;x;}'</span>
|
||||
</span></code></pre>
|
||||
<p>在匹配“正则表达式”的行下方插入一个空行</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">sed</span> <span class="token string">'/regex/G'</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">sed</span> <span class="token string">'/regex/G'</span>
|
||||
</span></code></pre>
|
||||
<p>在匹配“正则表达式”的行周围插入一个空行</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">sed</span> <span class="token string">'/regex/{x;p;x;G;}'</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">sed</span> <span class="token string">'/regex/{x;p;x;G;}'</span>
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap"><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">
|
||||
<ul>
|
||||
|
@ -67,11 +67,11 @@
|
||||
|
||||
<table><thead><tr><th>-</th><th>-</th></tr></thead><tbody><tr><td><code>主版本号(MAJOR)</code></td><td>当你做了不兼容的 API 修改</td></tr><tr><td><code>次版本号(MINOR)</code></td><td>当你做了向下兼容的功能性新增</td></tr><tr><td><code>修订号(PATCH)</code></td><td>当你做了向下兼容的问题修正</td></tr></tbody></table>
|
||||
</div></div></div><div class="wrap"><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><code class="code-highlight"><span class="code-line line-number" line="1"> 1.2.3
|
||||
</span><span class="code-line line-number" line="2"> =1.2.3
|
||||
</span><span class="code-line line-number" line="3"> >1.2.3
|
||||
</span><span class="code-line line-number" line="4"> <1.2.3
|
||||
</span><span class="code-line line-number" line="5">>=1.2.3
|
||||
<pre><code class="code-highlight"><span class="code-line"> 1.2.3
|
||||
</span><span class="code-line"> =1.2.3
|
||||
</span><span class="code-line"> >1.2.3
|
||||
</span><span class="code-line"> <1.2.3
|
||||
</span><span class="code-line">>=1.2.3
|
||||
</span></code></pre>
|
||||
<p>请注意,后缀版本(<code>1.2.3-rc1</code>)不匹配。</p>
|
||||
</div></div></div><div class="wrap row-span-3"><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">
|
||||
@ -229,7 +229,7 @@
|
||||
<table class="shortcuts show-header"><thead><tr><th>范围</th><th>描述</th></tr></thead><tbody><tr><td><code>>=0.14 <16</code></td><td>和 (空格分隔)</td></tr><tr><td><code>0.14.x || 15.x.x</code></td><td>或 (双竖线分隔)</td></tr></tbody></table>
|
||||
<!--rehype:className=shortcuts show-header-->
|
||||
</div></div></div><div class="wrap"><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><code class="code-highlight"><span class="code-line line-number" line="1">1.2.3-prerelease+build
|
||||
<pre><code class="code-highlight"><span class="code-line">1.2.3-prerelease+build
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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">
|
||||
|
||||
|
@ -39,45 +39,45 @@
|
||||
</div></header><div class="h1wrap-body"><div class="wrap"><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"><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">
|
||||
<p>连接到服务器(默认端口 22)</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">ssh</span> root@192.168.1.5
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">ssh</span> root@192.168.1.5
|
||||
</span></code></pre>
|
||||
<p>在特定端口上连接</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">ssh</span> root@192.168.1.5 <span class="token parameter variable">-p</span> <span class="token number">6222</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">ssh</span> root@192.168.1.5 <span class="token parameter variable">-p</span> <span class="token number">6222</span>
|
||||
</span></code></pre>
|
||||
<p>通过 pem 文件连接(0400 权限)</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">ssh</span> <span class="token parameter variable">-i</span> /path/file.pem root@192.168.1.5
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">ssh</span> <span class="token parameter variable">-i</span> /path/file.pem root@192.168.1.5
|
||||
</span></code></pre>
|
||||
<p>请参阅:<a href="./chmod.html#ssh-%E6%9D%83%E9%99%90">SSH 权限</a></p>
|
||||
</div></div></div><div class="wrap"><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">
|
||||
<p>执行远程命令</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">ssh</span> root@192.168.1.5 <span class="token string">'ls -l'</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">ssh</span> root@192.168.1.5 <span class="token string">'ls -l'</span>
|
||||
</span></code></pre>
|
||||
<p>调用本地脚本</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">ssh</span> root@192.168.1.5 <span class="token function">bash</span> <span class="token operator"><</span> script.sh
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">ssh</span> root@192.168.1.5 <span class="token function">bash</span> <span class="token operator"><</span> script.sh
|
||||
</span></code></pre>
|
||||
<p>从服务器压缩和下载</p>
|
||||
<pre class="wrap-text "><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">ssh</span> root@192.168.1.5 <span class="token string">"tar cvzf - ~/source"</span> <span class="token operator">></span> output.tgz
|
||||
<pre class="wrap-text "><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">ssh</span> root@192.168.1.5 <span class="token string">"tar cvzf - ~/source"</span> <span class="token operator">></span> output.tgz
|
||||
</span></code></pre>
|
||||
<!--rehype:className=wrap-text -->
|
||||
</div></div></div><div class="wrap row-span-2"><div class="wrap-header h3wrap"><h3 id="scp"><a aria-hidden="true" tabindex="-1" href="#scp"><span class="icon icon-link"></span></a>SCP</h3><div class="wrap-body">
|
||||
<!--rehype:wrap-class=row-span-2-->
|
||||
<p>从远程复制到本地</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">scp</span> user@server:/dir/file.ext dest/
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">scp</span> user@server:/dir/file.ext dest/
|
||||
</span></code></pre>
|
||||
<p>两台服务器之间的副本</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">scp</span> user@server:/file user@server:/dir
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">scp</span> user@server:/file user@server:/dir
|
||||
</span></code></pre>
|
||||
<p>从本地复制到远程</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">scp</span> dest/file.ext user@server:/dir
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">scp</span> dest/file.ext user@server:/dir
|
||||
</span></code></pre>
|
||||
<p>复制整个文件夹</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">scp</span> <span class="token parameter variable">-r</span> user@server:/dir dest/
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">scp</span> <span class="token parameter variable">-r</span> user@server:/dir dest/
|
||||
</span></code></pre>
|
||||
<p>复制文件夹中的所有文件</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">scp</span> user@server:/dir/* dest/
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">scp</span> user@server:/dir/* dest/
|
||||
</span></code></pre>
|
||||
<p>从服务器文件夹复制到当前文件夹</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">scp</span> user@server:/dir/* <span class="token builtin class-name">.</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">scp</span> user@server:/dir/* <span class="token builtin class-name">.</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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">
|
||||
|
||||
@ -150,41 +150,41 @@
|
||||
|
||||
<table><thead><tr><th align="left">选项</th><th>说明</th></tr></thead><tbody><tr><td align="left">scp <code>-r</code></td><td>递归复制整个目录</td></tr><tr><td align="left">scp <code>-C</code></td><td>压缩数据</td></tr><tr><td align="left">scp <code>-v</code></td><td>打印详细信息</td></tr><tr><td align="left">scp <code>-P</code> 8080</td><td>使用特定端口</td></tr><tr><td align="left">scp <code>-B</code></td><td>批处理模式_(防止密码)_</td></tr><tr><td align="left">scp <code>-p</code></td><td>保留时间和模式</td></tr></tbody></table>
|
||||
</div></div></div><div class="wrap"><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-toml"><code class="language-toml code-highlight"><span class="code-line line-number" line="1">Host server1
|
||||
</span><span class="code-line line-number" line="2"> HostName <span class="token number">192.168</span><span class="token punctuation">.</span><span class="token number">1.5</span>
|
||||
</span><span class="code-line line-number" line="3"> User root
|
||||
</span><span class="code-line line-number" line="4"> Port <span class="token number">22</span>
|
||||
</span><span class="code-line line-number" line="5"> IdentityFile ~/<span class="token punctuation">.</span>ssh/server1<span class="token punctuation">.</span>key
|
||||
<pre class="language-toml"><code class="language-toml code-highlight"><span class="code-line">Host server1
|
||||
</span><span class="code-line"> HostName <span class="token number">192.168</span><span class="token punctuation">.</span><span class="token number">1.5</span>
|
||||
</span><span class="code-line"> User root
|
||||
</span><span class="code-line"> Port <span class="token number">22</span>
|
||||
</span><span class="code-line"> IdentityFile ~/<span class="token punctuation">.</span>ssh/server1<span class="token punctuation">.</span>key
|
||||
</span></code></pre>
|
||||
<p>通过别名启动</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">ssh</span> server1
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">ssh</span> server1
|
||||
</span></code></pre>
|
||||
<p>请参阅:完整 <a href="https://linux.die.net/man/5/ssh_config">配置选项</a></p>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="proxyjump"><a aria-hidden="true" tabindex="-1" href="#proxyjump"><span class="icon icon-link"></span></a>ProxyJump</h3><div class="wrap-body">
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">ssh</span> <span class="token parameter variable">-J</span> proxy_host1 remote_host2
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">ssh</span> <span class="token parameter variable">-J</span> proxy_host1 remote_host2
|
||||
</span></code></pre>
|
||||
<pre class="wrap-text "><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">ssh</span> <span class="token parameter variable">-J</span> user@proxy_host1 user@remote_host2
|
||||
<pre class="wrap-text "><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">ssh</span> <span class="token parameter variable">-J</span> user@proxy_host1 user@remote_host2
|
||||
</span></code></pre>
|
||||
<!--rehype:className=wrap-text -->
|
||||
<p>多次跳跃</p>
|
||||
<pre class="wrap-text "><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ <span class="token function">ssh</span> <span class="token parameter variable">-J</span> user@proxy_host1:port1,user@proxy_host2:port2 user@remote_host3
|
||||
<pre class="wrap-text "><code class="language-shell code-highlight"><span class="code-line">$ <span class="token function">ssh</span> <span class="token parameter variable">-J</span> user@proxy_host1:port1,user@proxy_host2:port2 user@remote_host3
|
||||
</span></code></pre>
|
||||
<!--rehype:className=wrap-text -->
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="ssh-copy-id"><a aria-hidden="true" tabindex="-1" href="#ssh-copy-id"><span class="icon icon-link"></span></a>ssh-copy-id</h3><div class="wrap-body">
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ ssh-copy-id user@server
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ ssh-copy-id user@server
|
||||
</span></code></pre>
|
||||
<p>复制到别名服务器</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ ssh-copy-id server1
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ ssh-copy-id server1
|
||||
</span></code></pre>
|
||||
<p>复制特定密钥</p>
|
||||
<pre class="wrap-text "><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ ssh-copy-id <span class="token parameter variable">-i</span> ~/.ssh/id_rsa.pub user@server
|
||||
<pre class="wrap-text "><code class="language-shell code-highlight"><span class="code-line">$ ssh-copy-id <span class="token parameter variable">-i</span> ~/.ssh/id_rsa.pub user@server
|
||||
</span></code></pre>
|
||||
<!--rehype:className=wrap-text -->
|
||||
</div></div></div></div></div><div class="wrap"><div class="wrap-header h2wrap"><h2 id="ssh-keygen"><a aria-hidden="true" tabindex="-1" href="#ssh-keygen"><span class="icon icon-link"></span></a>SSH keygen</h2><div class="wrap-body">
|
||||
<!--rehype:body-class=cols-5-->
|
||||
</div></div><div class="h2wrap-body cols-5"><div class="wrap col-span-2"><div class="wrap-header h3wrap"><h3 id="ssh-keygen-1"><a aria-hidden="true" tabindex="-1" href="#ssh-keygen-1"><span class="icon icon-link"></span></a>ssh-keygen</h3><div class="wrap-body">
|
||||
<!--rehype:wrap-class=col-span-2-->
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ ssh-keygen <span class="token parameter variable">-t</span> rsa <span class="token parameter variable">-b</span> <span class="token number">4096</span> <span class="token parameter variable">-C</span> <span class="token string">"your@mail.com"</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ ssh-keygen <span class="token parameter variable">-t</span> rsa <span class="token parameter variable">-b</span> <span class="token number">4096</span> <span class="token parameter variable">-C</span> <span class="token string">"your@mail.com"</span>
|
||||
</span></code></pre>
|
||||
<hr>
|
||||
|
||||
@ -217,19 +217,19 @@
|
||||
</div></div></div><div class="wrap col-span-2 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=col-span-2 row-span-2-->
|
||||
<p>以交互方式生成密钥</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ ssh-keygen
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ ssh-keygen
|
||||
</span></code></pre>
|
||||
<p>指定文件名</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ ssh-keygen <span class="token parameter variable">-f</span> ~/.ssh/filename
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ ssh-keygen <span class="token parameter variable">-f</span> ~/.ssh/filename
|
||||
</span></code></pre>
|
||||
<p>从私钥生成公钥</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ ssh-keygen <span class="token parameter variable">-y</span> <span class="token parameter variable">-f</span> private.key <span class="token operator">></span> public.pub
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ ssh-keygen <span class="token parameter variable">-y</span> <span class="token parameter variable">-f</span> private.key <span class="token operator">></span> public.pub
|
||||
</span></code></pre>
|
||||
<p>更改评论</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ ssh-keygen <span class="token parameter variable">-c</span> <span class="token parameter variable">-f</span> ~/.ssh/id_rsa
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ ssh-keygen <span class="token parameter variable">-c</span> <span class="token parameter variable">-f</span> ~/.ssh/id_rsa
|
||||
</span></code></pre>
|
||||
<p>更改私钥密码</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ ssh-keygen <span class="token parameter variable">-p</span> <span class="token parameter variable">-f</span> ~/.ssh/id_rsa
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ ssh-keygen <span class="token parameter variable">-p</span> <span class="token parameter variable">-f</span> ~/.ssh/id_rsa
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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">
|
||||
<ul>
|
||||
@ -241,10 +241,10 @@
|
||||
</div></div></div><div class="wrap col-span-2"><div class="wrap-header h3wrap"><h3 id="known_hosts"><a aria-hidden="true" tabindex="-1" href="#known_hosts"><span class="icon icon-link"></span></a>known_hosts</h3><div class="wrap-body">
|
||||
<!--rehype:wrap-class=col-span-2-->
|
||||
<p>从 known_hosts 搜索</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ ssh-keygen <span class="token parameter variable">-F</span> <span class="token operator"><</span>ip/hostname<span class="token operator">></span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ ssh-keygen <span class="token parameter variable">-F</span> <span class="token operator"><</span>ip/hostname<span class="token operator">></span>
|
||||
</span></code></pre>
|
||||
<p>从 known_hosts 中删除</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ ssh-keygen <span class="token parameter variable">-R</span> <span class="token operator"><</span>ip/hostname<span class="token operator">></span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ ssh-keygen <span class="token parameter variable">-R</span> <span class="token operator"><</span>ip/hostname<span class="token operator">></span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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">
|
||||
<ul>
|
||||
|
220
docs/toml.html
220
docs/toml.html
@ -44,169 +44,169 @@
|
||||
<li><a href="https://learnxinyminutes.com/docs/toml/">Learn X in Y minutes</a> <em>(learnxinyminutes.com)</em></li>
|
||||
</ul>
|
||||
</div></div></div><div class="wrap"><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-toml"><code class="language-toml code-highlight"><span class="code-line line-number" line="1"><span class="token key property">bool</span> <span class="token punctuation">=</span> <span class="token boolean">true</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token key property">date</span> <span class="token punctuation">=</span> <span class="token date number">2006-05-27T07:32:00Z</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token key property">string</span> <span class="token punctuation">=</span> <span class="token string">"hello"</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token key property">number</span> <span class="token punctuation">=</span> <span class="token number">42</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token key property">float</span> <span class="token punctuation">=</span> <span class="token number">3.14</span>
|
||||
</span><span class="code-line line-number" line="6"><span class="token key property">scientificNotation</span> <span class="token punctuation">=</span> <span class="token number">1e+12</span>
|
||||
<pre class="language-toml"><code class="language-toml code-highlight"><span class="code-line"><span class="token key property">bool</span> <span class="token punctuation">=</span> <span class="token boolean">true</span>
|
||||
</span><span class="code-line"><span class="token key property">date</span> <span class="token punctuation">=</span> <span class="token date number">2006-05-27T07:32:00Z</span>
|
||||
</span><span class="code-line"><span class="token key property">string</span> <span class="token punctuation">=</span> <span class="token string">"hello"</span>
|
||||
</span><span class="code-line"><span class="token key property">number</span> <span class="token punctuation">=</span> <span class="token number">42</span>
|
||||
</span><span class="code-line"><span class="token key property">float</span> <span class="token punctuation">=</span> <span class="token number">3.14</span>
|
||||
</span><span class="code-line"><span class="token key property">scientificNotation</span> <span class="token punctuation">=</span> <span class="token number">1e+12</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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-yaml"><code class="language-yaml code-highlight"><span class="code-line line-number" line="1"><span class="token comment"># A single line comment example</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token comment"># block level comment example</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token comment"># 注释行 1</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token comment"># 注释行 2</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token comment"># 注释行 3</span>
|
||||
<pre class="language-yaml"><code class="language-yaml code-highlight"><span class="code-line"><span class="token comment"># A single line comment example</span>
|
||||
</span><span class="code-line"><span class="token comment"># block level comment example</span>
|
||||
</span><span class="code-line"><span class="token comment"># 注释行 1</span>
|
||||
</span><span class="code-line"><span class="token comment"># 注释行 2</span>
|
||||
</span><span class="code-line"><span class="token comment"># 注释行 3</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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-toml"><code class="language-toml code-highlight"><span class="code-line line-number" line="1"><span class="token key property">int1</span> <span class="token punctuation">=</span> <span class="token number">+42</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token key property">int2</span> <span class="token punctuation">=</span> <span class="token number">0</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token key property">int3</span> <span class="token punctuation">=</span> <span class="token number">-21</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token key property">integerRange</span> <span class="token punctuation">=</span> <span class="token number">64</span>
|
||||
<pre class="language-toml"><code class="language-toml code-highlight"><span class="code-line"><span class="token key property">int1</span> <span class="token punctuation">=</span> <span class="token number">+42</span>
|
||||
</span><span class="code-line"><span class="token key property">int2</span> <span class="token punctuation">=</span> <span class="token number">0</span>
|
||||
</span><span class="code-line"><span class="token key property">int3</span> <span class="token punctuation">=</span> <span class="token number">-21</span>
|
||||
</span><span class="code-line"><span class="token key property">integerRange</span> <span class="token punctuation">=</span> <span class="token number">64</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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-toml"><code class="language-toml code-highlight"><span class="code-line line-number" line="1"><span class="token key property">float2</span> <span class="token punctuation">=</span> <span class="token number">3.1415</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token key property">float4</span> <span class="token punctuation">=</span> <span class="token number">5e+22</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token key property">float7</span> <span class="token punctuation">=</span> <span class="token number">6.626e-34</span>
|
||||
<pre class="language-toml"><code class="language-toml code-highlight"><span class="code-line"><span class="token key property">float2</span> <span class="token punctuation">=</span> <span class="token number">3.1415</span>
|
||||
</span><span class="code-line"><span class="token key property">float4</span> <span class="token punctuation">=</span> <span class="token number">5e+22</span>
|
||||
</span><span class="code-line"><span class="token key property">float7</span> <span class="token punctuation">=</span> <span class="token number">6.626e-34</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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-toml"><code class="language-toml code-highlight"><span class="code-line line-number" line="1"><span class="token key property">bool1</span> <span class="token punctuation">=</span> <span class="token boolean">true</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token key property">bool2</span> <span class="token punctuation">=</span> <span class="token boolean">false</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token key property">boolMustBeLowercase</span> <span class="token punctuation">=</span> <span class="token boolean">true</span>
|
||||
<pre class="language-toml"><code class="language-toml code-highlight"><span class="code-line"><span class="token key property">bool1</span> <span class="token punctuation">=</span> <span class="token boolean">true</span>
|
||||
</span><span class="code-line"><span class="token key property">bool2</span> <span class="token punctuation">=</span> <span class="token boolean">false</span>
|
||||
</span><span class="code-line"><span class="token key property">boolMustBeLowercase</span> <span class="token punctuation">=</span> <span class="token boolean">true</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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-toml"><code class="language-toml code-highlight"><span class="code-line line-number" line="1"><span class="token key property">date1</span> <span class="token punctuation">=</span> <span class="token date number">1989-05-27T07:32:00Z</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token key property">date2</span> <span class="token punctuation">=</span> <span class="token date number">1989-05-26T15:32:00-07:00</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token key property">date3</span> <span class="token punctuation">=</span> <span class="token date number">1989-05-27T07:32:00</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token key property">date4</span> <span class="token punctuation">=</span> <span class="token date number">1989-05-27</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token key property">time1</span> <span class="token punctuation">=</span> <span class="token date number">07:32:00</span>
|
||||
</span><span class="code-line line-number" line="6"><span class="token key property">time2</span> <span class="token punctuation">=</span> <span class="token date number">00:32:00.999999</span>
|
||||
<pre class="language-toml"><code class="language-toml code-highlight"><span class="code-line"><span class="token key property">date1</span> <span class="token punctuation">=</span> <span class="token date number">1989-05-27T07:32:00Z</span>
|
||||
</span><span class="code-line"><span class="token key property">date2</span> <span class="token punctuation">=</span> <span class="token date number">1989-05-26T15:32:00-07:00</span>
|
||||
</span><span class="code-line"><span class="token key property">date3</span> <span class="token punctuation">=</span> <span class="token date number">1989-05-27T07:32:00</span>
|
||||
</span><span class="code-line"><span class="token key property">date4</span> <span class="token punctuation">=</span> <span class="token date number">1989-05-27</span>
|
||||
</span><span class="code-line"><span class="token key property">time1</span> <span class="token punctuation">=</span> <span class="token date number">07:32:00</span>
|
||||
</span><span class="code-line"><span class="token key property">time2</span> <span class="token punctuation">=</span> <span class="token date number">00:32:00.999999</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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-toml"><code class="language-toml code-highlight"><span class="code-line line-number" line="1"><span class="token key property">str1</span> <span class="token punctuation">=</span> <span class="token string">"I'm a string."</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token key property">str2</span> <span class="token punctuation">=</span> <span class="token string">"You can \"quote\" me."</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token key property">str3</span> <span class="token punctuation">=</span> <span class="token string">"Name\tJos\u00E9\nLoc\tSF."</span>
|
||||
<pre class="language-toml"><code class="language-toml code-highlight"><span class="code-line"><span class="token key property">str1</span> <span class="token punctuation">=</span> <span class="token string">"I'm a string."</span>
|
||||
</span><span class="code-line"><span class="token key property">str2</span> <span class="token punctuation">=</span> <span class="token string">"You can \"quote\" me."</span>
|
||||
</span><span class="code-line"><span class="token key property">str3</span> <span class="token punctuation">=</span> <span class="token string">"Name\tJos\u00E9\nLoc\tSF."</span>
|
||||
</span></code></pre>
|
||||
<p>See: <a href="#toml-strings">Strings</a></p>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="table"><a aria-hidden="true" tabindex="-1" href="#table"><span class="icon icon-link"></span></a>Table</h3><div class="wrap-body">
|
||||
<pre class="language-toml"><code class="language-toml code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">[</span><span class="token table class-name">owner</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token key property">name</span> <span class="token punctuation">=</span> <span class="token string">"Tom Preston-Werner"</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token key property">dob</span> <span class="token punctuation">=</span> <span class="token date number">1979-05-27T07:32:00-08:00</span>
|
||||
<pre class="language-toml"><code class="language-toml code-highlight"><span class="code-line"><span class="token punctuation">[</span><span class="token table class-name">owner</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line"><span class="token key property">name</span> <span class="token punctuation">=</span> <span class="token string">"Tom Preston-Werner"</span>
|
||||
</span><span class="code-line"><span class="token key property">dob</span> <span class="token punctuation">=</span> <span class="token date number">1979-05-27T07:32:00-08:00</span>
|
||||
</span></code></pre>
|
||||
<p>See: <a href="#toml-tables">Tables</a></p>
|
||||
</div></div></div><div class="wrap"><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-toml"><code class="language-toml code-highlight"><span class="code-line line-number" line="1"><span class="token key property">array1</span> <span class="token punctuation">=</span> <span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token key property">array2</span> <span class="token punctuation">=</span> <span class="token punctuation">[</span><span class="token string">"Commas"</span><span class="token punctuation">,</span> <span class="token string">"are"</span><span class="token punctuation">,</span> <span class="token string">"delimiter"</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token key property">array3</span> <span class="token punctuation">=</span> <span class="token punctuation">[</span><span class="token number">8001</span><span class="token punctuation">,</span> <span class="token number">8001</span><span class="token punctuation">,</span> <span class="token number">8002</span><span class="token punctuation">]</span>
|
||||
<pre class="language-toml"><code class="language-toml code-highlight"><span class="code-line"><span class="token key property">array1</span> <span class="token punctuation">=</span> <span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line"><span class="token key property">array2</span> <span class="token punctuation">=</span> <span class="token punctuation">[</span><span class="token string">"Commas"</span><span class="token punctuation">,</span> <span class="token string">"are"</span><span class="token punctuation">,</span> <span class="token string">"delimiter"</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line"><span class="token key property">array3</span> <span class="token punctuation">=</span> <span class="token punctuation">[</span><span class="token number">8001</span><span class="token punctuation">,</span> <span class="token number">8001</span><span class="token punctuation">,</span> <span class="token number">8002</span><span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap col-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=col-span-2-->
|
||||
<pre class="language-toml"><code class="language-toml code-highlight"><span class="code-line line-number" line="1"><span class="token key property">array1</span> <span class="token punctuation">=</span> <span class="token punctuation">[</span> <span class="token string">"Don't mix"</span><span class="token punctuation">,</span> <span class="token string">"different"</span><span class="token punctuation">,</span> <span class="token string">"types"</span> <span class="token punctuation">]</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token key property">array2</span> <span class="token punctuation">=</span> <span class="token punctuation">[</span> <span class="token punctuation">[</span> <span class="token number">1.2</span><span class="token punctuation">,</span> <span class="token number">2.4</span> <span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token punctuation">[</span><span class="token string">"all"</span><span class="token punctuation">,</span> <span class="token string">'strings'</span><span class="token punctuation">,</span> <span class="token string">"""are the same"""</span><span class="token punctuation">,</span> <span class="token string">'''type'''</span><span class="token punctuation">]</span> <span class="token punctuation">]</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token key property">array3</span> <span class="token punctuation">=</span> <span class="token punctuation">[</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token string">"Whitespace"</span><span class="token punctuation">,</span> <span class="token string">"is"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="5"> <span class="token string">"ignored"</span>
|
||||
</span><span class="code-line line-number" line="6"><span class="token punctuation">]</span>
|
||||
<pre class="language-toml"><code class="language-toml code-highlight"><span class="code-line"><span class="token key property">array1</span> <span class="token punctuation">=</span> <span class="token punctuation">[</span> <span class="token string">"Don't mix"</span><span class="token punctuation">,</span> <span class="token string">"different"</span><span class="token punctuation">,</span> <span class="token string">"types"</span> <span class="token punctuation">]</span>
|
||||
</span><span class="code-line"><span class="token key property">array2</span> <span class="token punctuation">=</span> <span class="token punctuation">[</span> <span class="token punctuation">[</span> <span class="token number">1.2</span><span class="token punctuation">,</span> <span class="token number">2.4</span> <span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token punctuation">[</span><span class="token string">"all"</span><span class="token punctuation">,</span> <span class="token string">'strings'</span><span class="token punctuation">,</span> <span class="token string">"""are the same"""</span><span class="token punctuation">,</span> <span class="token string">'''type'''</span><span class="token punctuation">]</span> <span class="token punctuation">]</span>
|
||||
</span><span class="code-line"><span class="token key property">array3</span> <span class="token punctuation">=</span> <span class="token punctuation">[</span>
|
||||
</span><span class="code-line"> <span class="token string">"Whitespace"</span><span class="token punctuation">,</span> <span class="token string">"is"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token string">"ignored"</span>
|
||||
</span><span class="code-line"><span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap"><div class="wrap-header h2wrap"><h2 id="toml-字符串"><a aria-hidden="true" tabindex="-1" href="#toml-字符串"><span class="icon icon-link"></span></a>TOML 字符串</h2><div class="wrap-body">
|
||||
</div></div><div class="h2wrap-body"><div class="wrap"><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-toml"><code class="language-toml code-highlight"><span class="code-line line-number" line="1"><span class="token key property">multiLineString</span> <span class="token punctuation">=</span> <span class="token string">"""
|
||||
</span></span><span class="code-line line-number" line="2"><span class="token string">Multi-line basic strings are surrounded
|
||||
</span></span><span class="code-line line-number" line="3"><span class="token string">by three quotation marks on each side
|
||||
</span></span><span class="code-line line-number" line="4"><span class="token string">and allow newlines.
|
||||
</span></span><span class="code-line line-number" line="5"><span class="token string">"""</span>
|
||||
<pre class="language-toml"><code class="language-toml code-highlight"><span class="code-line"><span class="token key property">multiLineString</span> <span class="token punctuation">=</span> <span class="token string">"""
|
||||
</span></span><span class="code-line"><span class="token string">Multi-line basic strings are surrounded
|
||||
</span></span><span class="code-line"><span class="token string">by three quotation marks on each side
|
||||
</span></span><span class="code-line"><span class="token string">and allow newlines.
|
||||
</span></span><span class="code-line"><span class="token string">"""</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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-toml"><code class="language-toml code-highlight"><span class="code-line line-number" line="1"><span class="token key property">path</span> <span class="token punctuation">=</span> <span class="token string">'C:\Users\nodejs\templates'</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token key property">path2</span> <span class="token punctuation">=</span> <span class="token string">'\\User\admin$\system32'</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token key property">quoted</span> <span class="token punctuation">=</span> <span class="token string">'Tom "Dubs" Preston-Werner'</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token key property">regex</span> <span class="token punctuation">=</span> <span class="token string">'<\i\c*\s*>'</span>
|
||||
<pre class="language-toml"><code class="language-toml code-highlight"><span class="code-line"><span class="token key property">path</span> <span class="token punctuation">=</span> <span class="token string">'C:\Users\nodejs\templates'</span>
|
||||
</span><span class="code-line"><span class="token key property">path2</span> <span class="token punctuation">=</span> <span class="token string">'\\User\admin$\system32'</span>
|
||||
</span><span class="code-line"><span class="token key property">quoted</span> <span class="token punctuation">=</span> <span class="token string">'Tom "Dubs" Preston-Werner'</span>
|
||||
</span><span class="code-line"><span class="token key property">regex</span> <span class="token punctuation">=</span> <span class="token string">'<\i\c*\s*>'</span>
|
||||
</span></code></pre>
|
||||
<p>用单引号括起来。不允许转义。</p>
|
||||
</div></div></div><div class="wrap"><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-toml"><code class="language-toml code-highlight"><span class="code-line line-number" line="1"><span class="token key property">re</span> <span class="token punctuation">=</span> <span class="token string">'''\d{2} apps is t[wo]o many'''</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token key property">lines</span> <span class="token punctuation">=</span> <span class="token string">'''
|
||||
</span></span><span class="code-line line-number" line="3"><span class="token string">The first newline is
|
||||
</span></span><span class="code-line line-number" line="4"><span class="token string">trimmed in raw strings.
|
||||
</span></span><span class="code-line line-number" line="5"><span class="token string">All other whitespace
|
||||
</span></span><span class="code-line line-number" line="6"><span class="token string">is preserved.
|
||||
</span></span><span class="code-line line-number" line="7"><span class="token string">'''</span>
|
||||
<pre class="language-toml"><code class="language-toml code-highlight"><span class="code-line"><span class="token key property">re</span> <span class="token punctuation">=</span> <span class="token string">'''\d{2} apps is t[wo]o many'''</span>
|
||||
</span><span class="code-line"><span class="token key property">lines</span> <span class="token punctuation">=</span> <span class="token string">'''
|
||||
</span></span><span class="code-line"><span class="token string">The first newline is
|
||||
</span></span><span class="code-line"><span class="token string">trimmed in raw strings.
|
||||
</span></span><span class="code-line"><span class="token string">All other whitespace
|
||||
</span></span><span class="code-line"><span class="token string">is preserved.
|
||||
</span></span><span class="code-line"><span class="token string">'''</span>
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap"><div class="wrap-header h2wrap"><h2 id="toml-tables"><a aria-hidden="true" tabindex="-1" href="#toml-tables"><span class="icon icon-link"></span></a>TOML Tables</h2><div class="wrap-body">
|
||||
</div></div><div class="h2wrap-body"><div class="wrap"><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-toml"><code class="language-toml code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">[</span><span class="token table class-name">name</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token key property">foo</span> <span class="token punctuation">=</span> <span class="token number">1</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token key property">bar</span> <span class="token punctuation">=</span> <span class="token number">2</span>
|
||||
<pre class="language-toml"><code class="language-toml code-highlight"><span class="code-line"><span class="token punctuation">[</span><span class="token table class-name">name</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line"><span class="token key property">foo</span> <span class="token punctuation">=</span> <span class="token number">1</span>
|
||||
</span><span class="code-line"><span class="token key property">bar</span> <span class="token punctuation">=</span> <span class="token number">2</span>
|
||||
</span></code></pre>
|
||||
<p><code>foo</code> 和 <code>bar</code> 是名为<code>name</code> 的表中的键</p>
|
||||
</div></div></div><div class="wrap"><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-toml"><code class="language-toml code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">[</span><span class="token table class-name">table1</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token key property">foo</span> <span class="token punctuation">=</span> <span class="token string">"bar"</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token punctuation">[</span><span class="token table class-name">table1.nested_table</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token key property">baz</span> <span class="token punctuation">=</span> <span class="token string">"bat"</span>
|
||||
<pre class="language-toml"><code class="language-toml code-highlight"><span class="code-line"><span class="token punctuation">[</span><span class="token table class-name">table1</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line"> <span class="token key property">foo</span> <span class="token punctuation">=</span> <span class="token string">"bar"</span>
|
||||
</span><span class="code-line"><span class="token punctuation">[</span><span class="token table class-name">table1.nested_table</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line"> <span class="token key property">baz</span> <span class="token punctuation">=</span> <span class="token string">"bat"</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap 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-toml"><code class="language-toml code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">[</span><span class="token punctuation">[</span><span class="token table class-name">comments</span><span class="token punctuation">]</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token key property">author</span> <span class="token punctuation">=</span> <span class="token string">"Nate"</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token key property">text</span> <span class="token punctuation">=</span> <span class="token string">"Great Article!"</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token punctuation">[</span><span class="token punctuation">[</span><span class="token table class-name">comments</span><span class="token punctuation">]</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token key property">author</span> <span class="token punctuation">=</span> <span class="token string">"Anonymous"</span>
|
||||
</span><span class="code-line line-number" line="6"><span class="token key property">text</span> <span class="token punctuation">=</span> <span class="token string">"Love it!"</span>
|
||||
<pre class="language-toml"><code class="language-toml code-highlight"><span class="code-line"><span class="token punctuation">[</span><span class="token punctuation">[</span><span class="token table class-name">comments</span><span class="token punctuation">]</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line"><span class="token key property">author</span> <span class="token punctuation">=</span> <span class="token string">"Nate"</span>
|
||||
</span><span class="code-line"><span class="token key property">text</span> <span class="token punctuation">=</span> <span class="token string">"Great Article!"</span>
|
||||
</span><span class="code-line"><span class="token punctuation">[</span><span class="token punctuation">[</span><span class="token table class-name">comments</span><span class="token punctuation">]</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line"><span class="token key property">author</span> <span class="token punctuation">=</span> <span class="token string">"Anonymous"</span>
|
||||
</span><span class="code-line"><span class="token key property">text</span> <span class="token punctuation">=</span> <span class="token string">"Love it!"</span>
|
||||
</span></code></pre>
|
||||
</div></div><div class="h3wrap-body"><div class="wrap"><div class="wrap-header h4wrap"><h4 id="-等效的-json"><a aria-hidden="true" tabindex="-1" href="#-等效的-json"><span class="icon icon-link"></span></a>↓ 等效的 JSON</h4><div class="wrap-body">
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token property">"comments"</span> <span class="token operator">:</span> <span class="token punctuation">[</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token property">"author"</span> <span class="token operator">:</span> <span class="token string">"Nate"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="5"> <span class="token property">"text"</span> <span class="token operator">:</span> <span class="token string">"Great Article!"</span>
|
||||
</span><span class="code-line line-number" line="6"> <span class="token punctuation">}</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="7"> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="8"> <span class="token property">"author"</span> <span class="token operator">:</span> <span class="token string">"Anonymous"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line line-number" line="9"> <span class="token property">"text"</span> <span class="token operator">:</span> <span class="token string">"Love It!"</span>
|
||||
</span><span class="code-line line-number" line="10"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line line-number" line="11"> <span class="token punctuation">]</span>
|
||||
</span><span class="code-line line-number" line="12"><span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"comments"</span> <span class="token operator">:</span> <span class="token punctuation">[</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"author"</span> <span class="token operator">:</span> <span class="token string">"Nate"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"text"</span> <span class="token operator">:</span> <span class="token string">"Great Article!"</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">}</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"author"</span> <span class="token operator">:</span> <span class="token string">"Anonymous"</span><span class="token punctuation">,</span>
|
||||
</span><span class="code-line"> <span class="token property">"text"</span> <span class="token operator">:</span> <span class="token string">"Love It!"</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">]</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap"><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-toml"><code class="language-toml code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">[</span><span class="token table class-name">dog."tater.man"</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token key property">type</span> <span class="token punctuation">=</span> <span class="token string">"pug"</span>
|
||||
<pre class="language-toml"><code class="language-toml code-highlight"><span class="code-line"><span class="token punctuation">[</span><span class="token table class-name">dog."tater.man"</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line"><span class="token key property">type</span> <span class="token punctuation">=</span> <span class="token string">"pug"</span>
|
||||
</span></code></pre>
|
||||
</div></div><div class="h3wrap-body"><div class="wrap"><div class="wrap-header h4wrap"><h4 id="-等效的-json-1"><a aria-hidden="true" tabindex="-1" href="#-等效的-json-1"><span class="icon icon-link"></span></a>↓ 等效的 JSON</h4><div class="wrap-body">
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token property">"dog"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token property">"tater.man"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token property">"type"</span><span class="token operator">:</span> <span class="token string">"pug"</span>
|
||||
</span><span class="code-line line-number" line="5"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line line-number" line="6"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line line-number" line="7"><span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"dog"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"tater.man"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"type"</span><span class="token operator">:</span> <span class="token string">"pug"</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap"><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-toml"><code class="language-toml code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">[</span><span class="token table class-name">foo.bar.baz</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token key property">bat</span> <span class="token punctuation">=</span> <span class="token string">"hi"</span>
|
||||
<pre class="language-toml"><code class="language-toml code-highlight"><span class="code-line"><span class="token punctuation">[</span><span class="token table class-name">foo.bar.baz</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line"><span class="token key property">bat</span> <span class="token punctuation">=</span> <span class="token string">"hi"</span>
|
||||
</span></code></pre>
|
||||
</div></div><div class="h3wrap-body"><div class="wrap"><div class="wrap-header h4wrap"><h4 id="-等效的-json-2"><a aria-hidden="true" tabindex="-1" href="#-等效的-json-2"><span class="icon icon-link"></span></a>↓ 等效的 JSON</h4><div class="wrap-body">
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="2"> <span class="token property">"foo"</span> <span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token property">"bar"</span> <span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="4"> <span class="token property">"baz"</span> <span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line line-number" line="5"> <span class="token property">"bat"</span> <span class="token operator">:</span> <span class="token string">"hi"</span>
|
||||
</span><span class="code-line line-number" line="6"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line line-number" line="7"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line line-number" line="8"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line line-number" line="9"><span class="token punctuation">}</span>
|
||||
<pre class="language-json"><code class="language-json code-highlight"><span class="code-line"><span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"foo"</span> <span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"bar"</span> <span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"baz"</span> <span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
</span><span class="code-line"> <span class="token property">"bat"</span> <span class="token operator">:</span> <span class="token string">"hi"</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line"> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line"><span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap"><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-toml"><code class="language-toml code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">[</span><span class="token table class-name">a.b.c</span><span class="token punctuation">]</span> <span class="token comment"># this is best practice</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token punctuation">[</span> <span class="token table class-name">d.e.f</span> <span class="token punctuation">]</span> <span class="token comment"># same as [d.e.f]</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token punctuation">[</span> <span class="token table class-name">g . h .i</span> <span class="token punctuation">]</span> <span class="token comment"># same as [g.h.i]</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token punctuation">[</span> <span class="token table class-name">j . "ʞ" .'l'</span> <span class="token punctuation">]</span> <span class="token comment"># same as [j."ʞ".'l']</span>
|
||||
<pre class="language-toml"><code class="language-toml code-highlight"><span class="code-line"><span class="token punctuation">[</span><span class="token table class-name">a.b.c</span><span class="token punctuation">]</span> <span class="token comment"># this is best practice</span>
|
||||
</span><span class="code-line"><span class="token punctuation">[</span> <span class="token table class-name">d.e.f</span> <span class="token punctuation">]</span> <span class="token comment"># same as [d.e.f]</span>
|
||||
</span><span class="code-line"><span class="token punctuation">[</span> <span class="token table class-name">g . h .i</span> <span class="token punctuation">]</span> <span class="token comment"># same as [g.h.i]</span>
|
||||
</span><span class="code-line"><span class="token punctuation">[</span> <span class="token table class-name">j . "ʞ" .'l'</span> <span class="token punctuation">]</span> <span class="token comment"># same as [j."ʞ".'l']</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap col-span-2"><div class="wrap-header h3wrap"><h3 id="inline-table"><a aria-hidden="true" tabindex="-1" href="#inline-table"><span class="icon icon-link"></span></a>Inline Table</h3><div class="wrap-body">
|
||||
<!--rehype:wrap-class=col-span-2-->
|
||||
<pre class="language-toml"><code class="language-toml code-highlight"><span class="code-line line-number" line="1"><span class="token key property">name</span> <span class="token punctuation">=</span> <span class="token punctuation">{</span> <span class="token key property">first</span> <span class="token punctuation">=</span> <span class="token string">"Tom"</span><span class="token punctuation">,</span> <span class="token key property">last</span> <span class="token punctuation">=</span> <span class="token string">"Preston-Werner"</span> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token key property">point</span> <span class="token punctuation">=</span> <span class="token punctuation">{</span> <span class="token key property">x</span> <span class="token punctuation">=</span> <span class="token number">1</span><span class="token punctuation">,</span> <span class="token key property">y</span> <span class="token punctuation">=</span> <span class="token number">2</span> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token key property">animal</span> <span class="token punctuation">=</span> <span class="token punctuation">{</span> <span class="token key property">type.name</span> <span class="token punctuation">=</span> <span class="token string">"pug"</span> <span class="token punctuation">}</span>
|
||||
<pre class="language-toml"><code class="language-toml code-highlight"><span class="code-line"><span class="token key property">name</span> <span class="token punctuation">=</span> <span class="token punctuation">{</span> <span class="token key property">first</span> <span class="token punctuation">=</span> <span class="token string">"Tom"</span><span class="token punctuation">,</span> <span class="token key property">last</span> <span class="token punctuation">=</span> <span class="token string">"Preston-Werner"</span> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line"><span class="token key property">point</span> <span class="token punctuation">=</span> <span class="token punctuation">{</span> <span class="token key property">x</span> <span class="token punctuation">=</span> <span class="token number">1</span><span class="token punctuation">,</span> <span class="token key property">y</span> <span class="token punctuation">=</span> <span class="token number">2</span> <span class="token punctuation">}</span>
|
||||
</span><span class="code-line"><span class="token key property">animal</span> <span class="token punctuation">=</span> <span class="token punctuation">{</span> <span class="token key property">type.name</span> <span class="token punctuation">=</span> <span class="token string">"pug"</span> <span class="token punctuation">}</span>
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div></div></div><footer class="footer-wrap"><footer class="max-container">© 2022 Kenny Wang, All rights reserved.</footer></footer></body>
|
||||
</html>
|
||||
|
1312
docs/typescript.html
1312
docs/typescript.html
File diff suppressed because it is too large
Load Diff
166
docs/vim.html
166
docs/vim.html
@ -39,36 +39,36 @@
|
||||
</div></header><div class="h1wrap-body"><div class="wrap"><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 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 line-number" line="1">▼/▶ 光标 ▽/▷ 目标
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">▼/▶ 光标 ▽/▷ 目标
|
||||
</span></code></pre>
|
||||
</div></div><div class="h3wrap-body"><div class="wrap"><div class="wrap-header h4wrap"><h4 id="左右动作"><a aria-hidden="true" tabindex="-1" href="#左右动作"><span class="icon icon-link"></span></a>左右动作</h4><div class="wrap-body">
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1">╭┈┈┈┈┈┈┈┈┈┈┈┈┈ <span class="token operator">|</span>
|
||||
</span><span class="code-line line-number" line="2">├┈┈┈┈┈┈┈┈┈┈┈┈┈ <span class="token number">0</span> $ ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈╮
|
||||
</span><span class="code-line line-number" line="3">┆ ╭┈┈┈┈┈┈┈┈┈┈ ^ fe ┈┈┈┈┈┈┈┈╮ ┆
|
||||
</span><span class="code-line line-number" line="4">┆ ┆ ╭┈┈┈┈┈┈┈ Fo te ┈┈┈┈┈┈┈╮┆ ┆
|
||||
</span><span class="code-line line-number" line="5">┆ ┆ ┆╭┈┈┈┈┈┈ To <span class="token number">30</span><span class="token operator">|</span> ┈┈┈╮ ┆┆ ┆
|
||||
</span><span class="code-line line-number" line="6">┆ ┆ ┆┆ ╭┈┈┈┈ ge w ┈┈┈╮ ┆ ┆┆ ┆
|
||||
</span><span class="code-line line-number" line="7">┆ ┆ ┆┆ ┆ ╭┈┈ b e ┈╮ ┆ ┆ ┆┆ ┆
|
||||
</span><span class="code-line line-number" line="8">┆ ┆ ┆┆ ┆ ┆ ╭h l╮ ┆ ┆ ┆ ┆┆ ┆
|
||||
</span><span class="code-line line-number" line="9">▽ ▽ ▽▽ ▽ ▽ ▽▼ ▼▽ ▽ ▽ ▽ ▽▽ ▽
|
||||
</span><span class="code-line line-number" line="10"> <span class="token builtin class-name">echo</span> <span class="token string">"A cheatsheet from quickReference"</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">╭┈┈┈┈┈┈┈┈┈┈┈┈┈ <span class="token operator">|</span>
|
||||
</span><span class="code-line">├┈┈┈┈┈┈┈┈┈┈┈┈┈ <span class="token number">0</span> $ ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈╮
|
||||
</span><span class="code-line">┆ ╭┈┈┈┈┈┈┈┈┈┈ ^ fe ┈┈┈┈┈┈┈┈╮ ┆
|
||||
</span><span class="code-line">┆ ┆ ╭┈┈┈┈┈┈┈ Fo te ┈┈┈┈┈┈┈╮┆ ┆
|
||||
</span><span class="code-line">┆ ┆ ┆╭┈┈┈┈┈┈ To <span class="token number">30</span><span class="token operator">|</span> ┈┈┈╮ ┆┆ ┆
|
||||
</span><span class="code-line">┆ ┆ ┆┆ ╭┈┈┈┈ ge w ┈┈┈╮ ┆ ┆┆ ┆
|
||||
</span><span class="code-line">┆ ┆ ┆┆ ┆ ╭┈┈ b e ┈╮ ┆ ┆ ┆┆ ┆
|
||||
</span><span class="code-line">┆ ┆ ┆┆ ┆ ┆ ╭h l╮ ┆ ┆ ┆ ┆┆ ┆
|
||||
</span><span class="code-line">▽ ▽ ▽▽ ▽ ▽ ▽▼ ▼▽ ▽ ▽ ▽ ▽▽ ▽
|
||||
</span><span class="code-line"> <span class="token builtin class-name">echo</span> <span class="token string">"A cheatsheet from quickReference"</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h4wrap"><h4 id="上下动作"><a aria-hidden="true" tabindex="-1" href="#上下动作"><span class="icon icon-link"></span></a>上下动作</h4><div class="wrap-body">
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1"> - SCREEN <span class="token number">1</span> START
|
||||
</span><span class="code-line line-number" line="2"> ╭┈┬┈┈┈┈┈┈┈┈┈▷ <span class="token comment">#!/usr/bin/python</span>
|
||||
</span><span class="code-line line-number" line="3"> ┆ ┆ ╭┈┈┈▷
|
||||
</span><span class="code-line line-number" line="4"> ┆ ┆ ┆ print<span class="token punctuation">(</span><span class="token string">"Hello"</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="5"> ┆ ┆ <span class="token punctuation">{</span> <span class="token punctuation">}</span> ▶ print<span class="token punctuation">(</span><span class="token string">"Vim"</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="6"> ┆ ┆ ┆ print<span class="token punctuation">(</span><span class="token string">"!"</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="7"> ┆ ┆ └┈▷
|
||||
</span><span class="code-line line-number" line="8"> ┆ ┆ ╭┈┈┈┬┈┈┈▷ print<span class="token punctuation">(</span><span class="token string">"Welcome"</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="9">G gg H M L k j ▶ print<span class="token punctuation">(</span><span class="token string">"to"</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="10">┆ ┆ └┈▷ print<span class="token punctuation">(</span><span class="token string">"Quick Reference"</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="11">┆ ┆ print<span class="token punctuation">(</span><span class="token string">"/vim"</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="12">┆ ┆
|
||||
</span><span class="code-line line-number" line="13">┆ ╰┈┈┈┈┈▷
|
||||
</span><span class="code-line line-number" line="14">┆ - SCREEN <span class="token number">1</span> END
|
||||
</span><span class="code-line line-number" line="15">╰┈┈┈┈┈┈┈┈┈┈┈┈┈┈▷ print<span class="token punctuation">(</span><span class="token string">"SCREEN 2"</span><span class="token punctuation">)</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"> - SCREEN <span class="token number">1</span> START
|
||||
</span><span class="code-line"> ╭┈┬┈┈┈┈┈┈┈┈┈▷ <span class="token comment">#!/usr/bin/python</span>
|
||||
</span><span class="code-line"> ┆ ┆ ╭┈┈┈▷
|
||||
</span><span class="code-line"> ┆ ┆ ┆ print<span class="token punctuation">(</span><span class="token string">"Hello"</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> ┆ ┆ <span class="token punctuation">{</span> <span class="token punctuation">}</span> ▶ print<span class="token punctuation">(</span><span class="token string">"Vim"</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> ┆ ┆ ┆ print<span class="token punctuation">(</span><span class="token string">"!"</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"> ┆ ┆ └┈▷
|
||||
</span><span class="code-line"> ┆ ┆ ╭┈┈┈┬┈┈┈▷ print<span class="token punctuation">(</span><span class="token string">"Welcome"</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line">G gg H M L k j ▶ print<span class="token punctuation">(</span><span class="token string">"to"</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line">┆ ┆ └┈▷ print<span class="token punctuation">(</span><span class="token string">"Quick Reference"</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line">┆ ┆ print<span class="token punctuation">(</span><span class="token string">"/vim"</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line">┆ ┆
|
||||
</span><span class="code-line">┆ ╰┈┈┈┈┈▷
|
||||
</span><span class="code-line">┆ - SCREEN <span class="token number">1</span> END
|
||||
</span><span class="code-line">╰┈┈┈┈┈┈┈┈┈┈┈┈┈┈▷ print<span class="token punctuation">(</span><span class="token string">"SCREEN 2"</span><span class="token punctuation">)</span>
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap 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-->
|
||||
@ -647,8 +647,8 @@
|
||||
<table class="show-header"><thead><tr><th align="left">组合</th><th>说明</th></tr></thead><tbody><tr><td align="left"><code>d</code><yel>d</yel></td><td>删除当前行</td></tr><tr><td align="left"><code>d</code><yel>j</yel></td><td>删除两行</td></tr><tr><td align="left"><code>d</code><yel>w</yel></td><td>删除到下一个单词</td></tr><tr><td align="left"><code>d</code><yel>b</yel></td><td>删除到单词的开头</td></tr><tr><td align="left"><code>d</code><yel>fa</yel></td><td>删除直到 <code>a</code> 字符</td></tr><tr><td align="left"><code>d</code><yel>/hello</yel></td><td>删除直到 <code>hello</code></td></tr><tr><td align="left"><code>c</code><yel>c</yel></td><td>更改当前行,与 <code>S</code> 同义</td></tr><tr><td align="left"><code>y</code><yel>y</yel></td><td>复制当前行</td></tr><tr><td align="left"><code>></code><yel>j</yel></td><td>缩进 2 行</td></tr><tr><td align="left">gg<code>d</code><yel>G</yel></td><td>删除完整的文档</td></tr><tr><td align="left">gg<code>=</code><yel>G</yel></td><td>缩进一个完整的文档</td></tr><tr><td align="left">gg<code>y</code><yel>G</yel></td><td>复制整个文档</td></tr></tbody></table>
|
||||
<!--rehype:className=show-header-->
|
||||
</div></div></div><div class="wrap"><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-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">[</span>数字<span class="token punctuation">]</span> <span class="token operator"><</span>运算符<span class="token operator">></span> <span class="token operator"><</span>动作<span class="token operator">></span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token operator"><</span>运算符<span class="token operator">></span> <span class="token punctuation">[</span>数字<span class="token punctuation">]</span> <span class="token operator"><</span>动作<span class="token operator">></span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line"><span class="token punctuation">[</span>数字<span class="token punctuation">]</span> <span class="token operator"><</span>运算符<span class="token operator">></span> <span class="token operator"><</span>动作<span class="token operator">></span>
|
||||
</span><span class="code-line"><span class="token operator"><</span>运算符<span class="token operator">></span> <span class="token punctuation">[</span>数字<span class="token punctuation">]</span> <span class="token operator"><</span>动作<span class="token operator">></span>
|
||||
</span></code></pre>
|
||||
<hr>
|
||||
|
||||
@ -1101,7 +1101,7 @@
|
||||
|
||||
<table><thead><tr><th align="left">:-</th><th>-</th></tr></thead><tbody><tr><td align="left"><code>/foo</code></td><td>向前搜索</td></tr><tr><td align="left"><code>/foo\c</code></td><td>向前搜索 <em>(不区分大小写)</em></td></tr><tr><td align="left"><code>?foo</code></td><td>向后搜索</td></tr><tr><td align="left"><code>/\v\d+</code></td><td>使用 <a href="./regex.html">regex</a> 搜索</td></tr><tr><td align="left"><code>n</code></td><td>下一个匹配的搜索模式</td></tr><tr><td align="left"><code>N</code></td><td>上一场比赛</td></tr><tr><td align="left"><code>*</code></td><td>向前搜索当前单词</td></tr><tr><td align="left"><code>#</code></td><td>向后搜索当前单词</td></tr></tbody></table>
|
||||
</div></div></div><div class="wrap"><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-vim"><code class="language-vim code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">:</span><span class="token punctuation">[</span>range<span class="token punctuation">]</span>s<span class="token operator">/</span><span class="token punctuation">{</span>pattern<span class="token punctuation">}</span><span class="token operator">/</span><span class="token punctuation">{</span>str<span class="token punctuation">}</span><span class="token operator">/</span><span class="token punctuation">[</span>flags<span class="token punctuation">]</span>
|
||||
<pre class="language-vim"><code class="language-vim code-highlight"><span class="code-line"><span class="token punctuation">:</span><span class="token punctuation">[</span>range<span class="token punctuation">]</span>s<span class="token operator">/</span><span class="token punctuation">{</span>pattern<span class="token punctuation">}</span><span class="token operator">/</span><span class="token punctuation">{</span>str<span class="token punctuation">}</span><span class="token operator">/</span><span class="token punctuation">[</span>flags<span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
<hr>
|
||||
|
||||
@ -1139,7 +1139,7 @@
|
||||
|
||||
<table><thead><tr><th align="left">:-</th><th>-</th></tr></thead><tbody><tr><td align="left"><code>:s/old/new</code></td><td>先更换</td></tr><tr><td align="left"><code>:s/old/new/g</code></td><td>全部替换</td></tr><tr><td align="left"><code>:s/\vold/new/g</code></td><td>全部替换为 <a href="./regex.html">regex</a></td></tr><tr><td align="left"><code>:s/old/new/gc</code></td><td>全部替换_(确认)_</td></tr><tr><td align="left"><code>:s/old/new/i</code></td><td>先忽略大小写替换</td></tr><tr><td align="left"><code>:2,6s/old/new/g</code></td><td>在 <code>2</code>-<code>6</code> 行之间替换</td></tr></tbody></table>
|
||||
</div></div></div><div class="wrap"><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-vim"><code class="language-vim code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">:</span><span class="token operator">%</span>s<span class="token operator">/</span><span class="token punctuation">{</span>pattern<span class="token punctuation">}</span><span class="token operator">/</span><span class="token punctuation">{</span>str<span class="token punctuation">}</span><span class="token operator">/</span><span class="token punctuation">[</span>flags<span class="token punctuation">]</span>
|
||||
<pre class="language-vim"><code class="language-vim code-highlight"><span class="code-line"><span class="token punctuation">:</span><span class="token operator">%</span>s<span class="token operator">/</span><span class="token punctuation">{</span>pattern<span class="token punctuation">}</span><span class="token operator">/</span><span class="token punctuation">{</span>str<span class="token punctuation">}</span><span class="token operator">/</span><span class="token punctuation">[</span>flags<span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
<hr>
|
||||
|
||||
@ -1222,7 +1222,7 @@
|
||||
<table><thead><tr><th align="left">:-</th><th>-</th></tr></thead><tbody><tr><td align="left"><code>%</code></td><td>整个文件</td></tr><tr><td align="left"><code>’<,’></code></td><td>当前选择</td></tr><tr><td align="left"><code>5</code></td><td>第 <code>5</code> 行</td></tr><tr><td align="left"><code>5,10</code></td><td>第 <code>5</code> 行到第 <code>10</code> 行</td></tr><tr><td align="left"><code>$</code></td><td>最后一行</td></tr><tr><td align="left"><code>2,$</code></td><td>第 <code>2</code> 行到最后</td></tr><tr><td align="left"><code>.</code></td><td>当前行</td></tr><tr><td align="left"><code>,3</code></td><td>接下来的 <code>3</code> 行</td></tr><tr><td align="left"><code>-3,</code></td><td>转发 <code>3</code> 行</td></tr></tbody></table>
|
||||
</div></div></div><div class="wrap 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-vim"><code class="language-vim code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">:</span><span class="token punctuation">[</span>range<span class="token punctuation">]</span>g<span class="token operator">/</span><span class="token punctuation">{</span>pattern<span class="token punctuation">}</span><span class="token operator">/</span><span class="token punctuation">[</span>command<span class="token punctuation">]</span>
|
||||
<pre class="language-vim"><code class="language-vim code-highlight"><span class="code-line"><span class="token punctuation">:</span><span class="token punctuation">[</span>range<span class="token punctuation">]</span>g<span class="token operator">/</span><span class="token punctuation">{</span>pattern<span class="token punctuation">}</span><span class="token operator">/</span><span class="token punctuation">[</span>command<span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
<hr>
|
||||
|
||||
@ -1264,7 +1264,7 @@
|
||||
|
||||
<table><thead><tr><th align="left">:-</th><th>-</th></tr></thead><tbody><tr><td align="left"><code>:g/foo/d</code></td><td>删除包含 <code>foo</code> 的行</td></tr><tr><td align="left"><code>:g!/foo/d</code></td><td>删除不包含 <code>foo</code> 的行</td></tr><tr><td align="left"><code>:g/^\s*$/d</code></td><td>删除所有空行</td></tr><tr><td align="left"><code>:g/foo/t$</code></td><td>将包含 <code>foo</code> 的行复制到 EOF</td></tr><tr><td align="left"><code>:g/foo/m$</code></td><td>将包含 <code>foo</code> 的行移动到 EOF</td></tr><tr><td align="left"><code>:g/^/m0</code></td><td>反转文件</td></tr><tr><td align="left"><code>:g/^/t.</code></td><td>复制每一行</td></tr></tbody></table>
|
||||
</div></div></div><div class="wrap"><div class="wrap-header h3wrap"><h3 id="inverse逆-g"><a aria-hidden="true" tabindex="-1" href="#inverse逆-g"><span class="icon icon-link"></span></a>Inverse(逆) :g</h3><div class="wrap-body">
|
||||
<pre class="language-vim"><code class="language-vim code-highlight"><span class="code-line line-number" line="1"><span class="token punctuation">:</span><span class="token punctuation">[</span>range<span class="token punctuation">]</span>v<span class="token operator">/</span><span class="token punctuation">{</span>pattern<span class="token punctuation">}</span><span class="token operator">/</span><span class="token punctuation">[</span>command<span class="token punctuation">]</span>
|
||||
<pre class="language-vim"><code class="language-vim code-highlight"><span class="code-line"><span class="token punctuation">:</span><span class="token punctuation">[</span>range<span class="token punctuation">]</span>v<span class="token operator">/</span><span class="token punctuation">{</span>pattern<span class="token punctuation">}</span><span class="token operator">/</span><span class="token punctuation">[</span>command<span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
<hr>
|
||||
|
||||
@ -1353,33 +1353,33 @@
|
||||
<table><thead><tr><th align="left">:-</th><th>-</th></tr></thead><tbody><tr><td align="left"><code>&</code> <em>|</em> <code>\0</code></td><td>替换为整个匹配的</td></tr><tr><td align="left"><code>\1</code>...<code>\9</code></td><td>替换为 0-9 组</td></tr><tr><td align="left"><code>\u</code></td><td>大写下一个字母</td></tr><tr><td align="left"><code>\U</code></td><td>后面的大写字符</td></tr><tr><td align="left"><code>\l</code></td><td>小写下一个字母</td></tr><tr><td align="left"><code>\L</code></td><td>后面的字符小写</td></tr><tr><td align="left"><code>\e</code></td><td><code>\u</code>、<code>\U</code>、<code>\l</code> 和 <code>\L</code> 的结尾</td></tr><tr><td align="left"><code>\E</code></td><td><code>\u</code>、<code>\U</code>、<code>\l</code> 和 <code>\L</code> 的结尾</td></tr></tbody></table>
|
||||
</div></div></div><div class="wrap col-span-2"><div class="wrap-header h3wrap"><h3 id="例子-1"><a aria-hidden="true" tabindex="-1" href="#例子-1"><span class="icon icon-link"></span></a>例子</h3><div class="wrap-body">
|
||||
<!--rehype:wrap-class=col-span-2-->
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">:s/a<span class="token punctuation">\</span><span class="token operator">|</span>b/xxx<span class="token punctuation">\</span>0xxx/g <span class="token comment"># 将 "a b" 修改为 "xxxaxxx xxxbxxx"</span>
|
||||
</span><span class="code-line line-number" line="2">:s/test/<span class="token punctuation">\</span>U<span class="token operator">&</span> file/ <span class="token comment"># 将 "test" 修改为 "TEST FILE"</span>
|
||||
</span><span class="code-line line-number" line="3">:s/<span class="token punctuation">\</span><span class="token punctuation">(</span>test<span class="token punctuation">\</span><span class="token punctuation">)</span>/<span class="token punctuation">\</span>U<span class="token punctuation">\</span><span class="token number">1</span><span class="token punctuation">\</span>e file/ <span class="token comment"># 将 "test" 修改为 "TEST file"</span>
|
||||
</span><span class="code-line line-number" line="4">:s/<span class="token punctuation">\</span>v<span class="token punctuation">(</span><span class="token punctuation">[</span>abc<span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">(</span><span class="token punctuation">[</span>efg<span class="token punctuation">]</span><span class="token punctuation">)</span>/<span class="token punctuation">\</span><span class="token number">2</span><span class="token punctuation">\</span><span class="token number">1</span>/g <span class="token comment"># 将 "af fa bg" 修改为 "fa fa gb"</span>
|
||||
</span><span class="code-line line-number" line="5">:s/<span class="token punctuation">\</span>v<span class="token punctuation">\</span>w+/<span class="token punctuation">\</span>u<span class="token punctuation">\</span><span class="token number">0</span>/g <span class="token comment"># 将 "bla bla" 修改为 "Bla Bla"</span>
|
||||
</span><span class="code-line line-number" line="6">:s/<span class="token punctuation">\</span>v<span class="token punctuation">(</span><span class="token punctuation">[</span>ab<span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token operator">|</span><span class="token punctuation">(</span><span class="token punctuation">[</span>cd<span class="token punctuation">]</span><span class="token punctuation">)</span>/<span class="token punctuation">\</span>1x/g <span class="token comment"># 将 "a b c d" 修改为 "ax bx x x"</span>
|
||||
</span><span class="code-line line-number" line="7">:%s/.*/<span class="token punctuation">\</span>L<span class="token operator">&</span>/ <span class="token comment"># 将 "HTML" 修改为 "html"</span>
|
||||
</span><span class="code-line line-number" line="8">:s/<span class="token punctuation">\</span>v<span class="token operator"><</span><span class="token punctuation">(</span><span class="token builtin class-name">.</span><span class="token punctuation">)</span><span class="token punctuation">(</span><span class="token punctuation">\</span>w*<span class="token punctuation">)</span>/<span class="token punctuation">\</span>u<span class="token punctuation">\</span><span class="token number">1</span><span class="token punctuation">\</span>L<span class="token punctuation">\</span><span class="token number">2</span>/g <span class="token comment"># 将单词的每个首字母大写</span>
|
||||
</span><span class="code-line line-number" line="9">:%s/^<span class="token punctuation">\</span><span class="token punctuation">(</span>.*<span class="token punctuation">\</span><span class="token punctuation">)</span><span class="token punctuation">\</span>n<span class="token punctuation">\</span><span class="token number">1</span>/<span class="token punctuation">\</span><span class="token number">1</span>/ <span class="token comment"># 删除重复行</span>
|
||||
</span><span class="code-line line-number" line="10">:%s/<span class="token operator"><</span><span class="token punctuation">\</span>/<span class="token punctuation">\</span><span class="token operator">=</span><span class="token punctuation">\</span><span class="token punctuation">(</span><span class="token punctuation">\</span>w<span class="token punctuation">\</span>+<span class="token punctuation">\</span><span class="token punctuation">)</span><span class="token punctuation">\</span><span class="token operator">></span>/<span class="token punctuation">\</span>U<span class="token operator">&</span>/g <span class="token comment"># 将 HTML 标记转换为大写</span>
|
||||
</span><span class="code-line line-number" line="11">:g/^pattern/s/$/mytext <span class="token comment"># 查找文本并将其附加到末尾</span>
|
||||
</span><span class="code-line line-number" line="12">:g/pattern/norm<span class="token operator">!</span> @i <span class="token comment"># 在匹配行上运行宏</span>
|
||||
</span><span class="code-line line-number" line="13">/^<span class="token punctuation">\</span><span class="token punctuation">(</span>.*<span class="token punctuation">\</span><span class="token punctuation">)</span><span class="token punctuation">\</span><span class="token punctuation">(</span><span class="token punctuation">\</span>r<span class="token punctuation">\</span>?<span class="token punctuation">\</span>n<span class="token punctuation">\</span><span class="token number">1</span><span class="token punctuation">\</span><span class="token punctuation">)</span><span class="token punctuation">\</span>+$ <span class="token comment"># 查看重复行</span>
|
||||
</span><span class="code-line line-number" line="14">/<span class="token punctuation">\</span>v^<span class="token punctuation">(</span>.*<span class="token punctuation">)</span><span class="token punctuation">(</span><span class="token punctuation">\</span>r?<span class="token punctuation">\</span>n<span class="token punctuation">\</span><span class="token number">1</span><span class="token punctuation">)</span>+$ <span class="token comment"># 查看重复行(非常神奇)</span>
|
||||
</span><span class="code-line line-number" line="15">:v/./,/./-j <span class="token comment"># 将空行压缩成空行</span>
|
||||
</span><span class="code-line line-number" line="16">:g/<span class="token operator"><</span>p<span class="token operator"><span class="token file-descriptor important">1</span>></span>/,/<span class="token operator"><</span>p<span class="token operator"><span class="token file-descriptor important">2</span>></span>/d <span class="token comment"># 从 <p1> 到 <p2> 包含删除</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">:s/a<span class="token punctuation">\</span><span class="token operator">|</span>b/xxx<span class="token punctuation">\</span>0xxx/g <span class="token comment"># 将 "a b" 修改为 "xxxaxxx xxxbxxx"</span>
|
||||
</span><span class="code-line">:s/test/<span class="token punctuation">\</span>U<span class="token operator">&</span> file/ <span class="token comment"># 将 "test" 修改为 "TEST FILE"</span>
|
||||
</span><span class="code-line">:s/<span class="token punctuation">\</span><span class="token punctuation">(</span>test<span class="token punctuation">\</span><span class="token punctuation">)</span>/<span class="token punctuation">\</span>U<span class="token punctuation">\</span><span class="token number">1</span><span class="token punctuation">\</span>e file/ <span class="token comment"># 将 "test" 修改为 "TEST file"</span>
|
||||
</span><span class="code-line">:s/<span class="token punctuation">\</span>v<span class="token punctuation">(</span><span class="token punctuation">[</span>abc<span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">(</span><span class="token punctuation">[</span>efg<span class="token punctuation">]</span><span class="token punctuation">)</span>/<span class="token punctuation">\</span><span class="token number">2</span><span class="token punctuation">\</span><span class="token number">1</span>/g <span class="token comment"># 将 "af fa bg" 修改为 "fa fa gb"</span>
|
||||
</span><span class="code-line">:s/<span class="token punctuation">\</span>v<span class="token punctuation">\</span>w+/<span class="token punctuation">\</span>u<span class="token punctuation">\</span><span class="token number">0</span>/g <span class="token comment"># 将 "bla bla" 修改为 "Bla Bla"</span>
|
||||
</span><span class="code-line">:s/<span class="token punctuation">\</span>v<span class="token punctuation">(</span><span class="token punctuation">[</span>ab<span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token operator">|</span><span class="token punctuation">(</span><span class="token punctuation">[</span>cd<span class="token punctuation">]</span><span class="token punctuation">)</span>/<span class="token punctuation">\</span>1x/g <span class="token comment"># 将 "a b c d" 修改为 "ax bx x x"</span>
|
||||
</span><span class="code-line">:%s/.*/<span class="token punctuation">\</span>L<span class="token operator">&</span>/ <span class="token comment"># 将 "HTML" 修改为 "html"</span>
|
||||
</span><span class="code-line">:s/<span class="token punctuation">\</span>v<span class="token operator"><</span><span class="token punctuation">(</span><span class="token builtin class-name">.</span><span class="token punctuation">)</span><span class="token punctuation">(</span><span class="token punctuation">\</span>w*<span class="token punctuation">)</span>/<span class="token punctuation">\</span>u<span class="token punctuation">\</span><span class="token number">1</span><span class="token punctuation">\</span>L<span class="token punctuation">\</span><span class="token number">2</span>/g <span class="token comment"># 将单词的每个首字母大写</span>
|
||||
</span><span class="code-line">:%s/^<span class="token punctuation">\</span><span class="token punctuation">(</span>.*<span class="token punctuation">\</span><span class="token punctuation">)</span><span class="token punctuation">\</span>n<span class="token punctuation">\</span><span class="token number">1</span>/<span class="token punctuation">\</span><span class="token number">1</span>/ <span class="token comment"># 删除重复行</span>
|
||||
</span><span class="code-line">:%s/<span class="token operator"><</span><span class="token punctuation">\</span>/<span class="token punctuation">\</span><span class="token operator">=</span><span class="token punctuation">\</span><span class="token punctuation">(</span><span class="token punctuation">\</span>w<span class="token punctuation">\</span>+<span class="token punctuation">\</span><span class="token punctuation">)</span><span class="token punctuation">\</span><span class="token operator">></span>/<span class="token punctuation">\</span>U<span class="token operator">&</span>/g <span class="token comment"># 将 HTML 标记转换为大写</span>
|
||||
</span><span class="code-line">:g/^pattern/s/$/mytext <span class="token comment"># 查找文本并将其附加到末尾</span>
|
||||
</span><span class="code-line">:g/pattern/norm<span class="token operator">!</span> @i <span class="token comment"># 在匹配行上运行宏</span>
|
||||
</span><span class="code-line">/^<span class="token punctuation">\</span><span class="token punctuation">(</span>.*<span class="token punctuation">\</span><span class="token punctuation">)</span><span class="token punctuation">\</span><span class="token punctuation">(</span><span class="token punctuation">\</span>r<span class="token punctuation">\</span>?<span class="token punctuation">\</span>n<span class="token punctuation">\</span><span class="token number">1</span><span class="token punctuation">\</span><span class="token punctuation">)</span><span class="token punctuation">\</span>+$ <span class="token comment"># 查看重复行</span>
|
||||
</span><span class="code-line">/<span class="token punctuation">\</span>v^<span class="token punctuation">(</span>.*<span class="token punctuation">)</span><span class="token punctuation">(</span><span class="token punctuation">\</span>r?<span class="token punctuation">\</span>n<span class="token punctuation">\</span><span class="token number">1</span><span class="token punctuation">)</span>+$ <span class="token comment"># 查看重复行(非常神奇)</span>
|
||||
</span><span class="code-line">:v/./,/./-j <span class="token comment"># 将空行压缩成空行</span>
|
||||
</span><span class="code-line">:g/<span class="token operator"><</span>p<span class="token operator"><span class="token file-descriptor important">1</span>></span>/,/<span class="token operator"><</span>p<span class="token operator"><span class="token file-descriptor important">2</span>></span>/d <span class="token comment"># 从 <p1> 到 <p2> 包含删除</span>
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap"><div class="wrap-header h2wrap"><h2 id="vimdiff"><a aria-hidden="true" tabindex="-1" href="#vimdiff"><span class="icon icon-link"></span></a>Vimdiff</h2><div class="wrap-body">
|
||||
</div></div><div class="h2wrap-body"><div class="wrap"><div class="wrap-header h3wrap"><h3 style="background:#d7a100;" id="用法-2"><a aria-hidden="true" tabindex="-1" href="#用法-2"><span class="icon icon-link"></span></a>用法</h3><div class="wrap-body">
|
||||
<!--rehype:style=background:#d7a100;-->
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">$ vimdiff file1 file2 <span class="token punctuation">[</span>file3<span class="token punctuation">]</span>
|
||||
</span><span class="code-line line-number" line="2">$ <span class="token function">vim</span> <span class="token parameter variable">-d</span> file1 file2 <span class="token punctuation">[</span>file3<span class="token punctuation">]</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">$ vimdiff file1 file2 <span class="token punctuation">[</span>file3<span class="token punctuation">]</span>
|
||||
</span><span class="code-line">$ <span class="token function">vim</span> <span class="token parameter variable">-d</span> file1 file2 <span class="token punctuation">[</span>file3<span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap 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><code class="code-highlight"><span class="code-line line-number" line="1">:[range]diffget [bufspec]
|
||||
</span><span class="code-line line-number" line="2">:[range]diffput [bufspec]
|
||||
<pre><code class="code-highlight"><span class="code-line">:[range]diffget [bufspec]
|
||||
</span><span class="code-line">:[range]diffput [bufspec]
|
||||
</span></code></pre>
|
||||
<hr>
|
||||
|
||||
@ -1913,66 +1913,66 @@
|
||||
<!--rehype:className=shortcuts-->
|
||||
</div></div></div><div class="wrap"><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">
|
||||
<p>删除重复行</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">:sort <span class="token operator">|</span> %<span class="token operator">!</span>uniq <span class="token parameter variable">-u</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">:sort <span class="token operator">|</span> %<span class="token operator">!</span>uniq <span class="token parameter variable">-u</span>
|
||||
</span></code></pre>
|
||||
<p>对文件中的行进行编号</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">:%<span class="token operator">!</span>cat <span class="token parameter variable">-n</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">:%<span class="token operator">!</span>cat <span class="token parameter variable">-n</span>
|
||||
</span></code></pre>
|
||||
<p>将整个文档复制到剪贴板</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">:%w <span class="token operator">!</span>pbcopy <span class="token comment"># Mac OS X</span>
|
||||
</span><span class="code-line line-number" line="2">:%w <span class="token operator">!</span>xclip <span class="token parameter variable">-i</span> <span class="token parameter variable">-sel</span> c <span class="token comment"># GNU/Linux</span>
|
||||
</span><span class="code-line line-number" line="3">:%w <span class="token operator">!</span>xsel <span class="token parameter variable">-i</span> <span class="token parameter variable">-b</span> <span class="token comment"># GNU/Linux</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">:%w <span class="token operator">!</span>pbcopy <span class="token comment"># Mac OS X</span>
|
||||
</span><span class="code-line">:%w <span class="token operator">!</span>xclip <span class="token parameter variable">-i</span> <span class="token parameter variable">-sel</span> c <span class="token comment"># GNU/Linux</span>
|
||||
</span><span class="code-line">:%w <span class="token operator">!</span>xsel <span class="token parameter variable">-i</span> <span class="token parameter variable">-b</span> <span class="token comment"># GNU/Linux</span>
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap"><div class="wrap-header h2wrap"><h2 id="理解-vim"><a aria-hidden="true" tabindex="-1" href="#理解-vim"><span class="icon icon-link"></span></a>理解 Vim</h2><div class="wrap-body">
|
||||
</div></div><div class="h2wrap-body"><div class="wrap"><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-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">d <span class="token comment"># 表示删除delete</span>
|
||||
</span><span class="code-line line-number" line="2">r <span class="token comment"># 表示替换replace</span>
|
||||
</span><span class="code-line line-number" line="3">c <span class="token comment"># 表示修改change</span>
|
||||
</span><span class="code-line line-number" line="4">y <span class="token comment"># 表示复制yank</span>
|
||||
</span><span class="code-line line-number" line="5"><span class="token function">v</span> <span class="token comment"># 表示选取visual select</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">d <span class="token comment"># 表示删除delete</span>
|
||||
</span><span class="code-line">r <span class="token comment"># 表示替换replace</span>
|
||||
</span><span class="code-line">c <span class="token comment"># 表示修改change</span>
|
||||
</span><span class="code-line">y <span class="token comment"># 表示复制yank</span>
|
||||
</span><span class="code-line"><span class="token function">v</span> <span class="token comment"># 表示选取visual select</span>
|
||||
</span></code></pre>
|
||||
<p>动词代表了我们打算对文本进行什么样的操作</p>
|
||||
</div></div></div><div class="wrap"><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-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">w <span class="token comment"># 表示一个单词word</span>
|
||||
</span><span class="code-line line-number" line="2">s <span class="token comment"># 表示一个句子sentence</span>
|
||||
</span><span class="code-line line-number" line="3">p <span class="token comment"># 表示一个段落paragraph</span>
|
||||
</span><span class="code-line line-number" line="4">t <span class="token comment"># 表示一个 HTML 标签tag</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">w <span class="token comment"># 表示一个单词word</span>
|
||||
</span><span class="code-line">s <span class="token comment"># 表示一个句子sentence</span>
|
||||
</span><span class="code-line">p <span class="token comment"># 表示一个段落paragraph</span>
|
||||
</span><span class="code-line">t <span class="token comment"># 表示一个 HTML 标签tag</span>
|
||||
</span></code></pre>
|
||||
<p>名词代表了我们即将处理的文本。引号或者各种括号所包含的文本称作一个文本块。</p>
|
||||
</div></div></div><div class="wrap"><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-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">i <span class="token comment"># 表示在...之内 inside</span>
|
||||
</span><span class="code-line line-number" line="2">a <span class="token comment"># 表示环绕... around</span>
|
||||
</span><span class="code-line line-number" line="3">t <span class="token comment"># 表示到...位置前 to</span>
|
||||
</span><span class="code-line line-number" line="4">f <span class="token comment"># 表示到...位置上 forward</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">i <span class="token comment"># 表示在...之内 inside</span>
|
||||
</span><span class="code-line">a <span class="token comment"># 表示环绕... around</span>
|
||||
</span><span class="code-line">t <span class="token comment"># 表示到...位置前 to</span>
|
||||
</span><span class="code-line">f <span class="token comment"># 表示到...位置上 forward</span>
|
||||
</span></code></pre>
|
||||
<p>介词界定了待编辑文本的范围或者位置。</p>
|
||||
</div></div></div><div class="wrap col-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=col-span-2-->
|
||||
<p>数词指定了待编辑文本对象的数量,从这个角度而言,数词也可以看作是一种介词。引入数词之后,文本编辑命令的语法就升级成了下面这样:</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">动词 介词/数词 名词
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">动词 介词/数词 名词
|
||||
</span></code></pre>
|
||||
<p>下面是几个例子:</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">c3w <span class="token comment"># 修改三个单词:change three words</span>
|
||||
</span><span class="code-line line-number" line="2">d2w <span class="token comment"># 删除两个单词:delete two words</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">c3w <span class="token comment"># 修改三个单词:change three words</span>
|
||||
</span><span class="code-line">d2w <span class="token comment"># 删除两个单词:delete two words</span>
|
||||
</span></code></pre>
|
||||
<p>另外,数词也可以修饰动词,表示将操作执行 <code>n</code> 次。于是,我们又有了下面的语法:</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">数词 动词 名词
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">数词 动词 名词
|
||||
</span></code></pre>
|
||||
<p>示例</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">2dw <span class="token comment"># 两次删除单词(等价于删除两个单词): twice delete word</span>
|
||||
</span><span class="code-line line-number" line="2">3x <span class="token comment"># 三次删除字符(等价于删除三个字符): three times delete character</span>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">2dw <span class="token comment"># 两次删除单词(等价于删除两个单词): twice delete word</span>
|
||||
</span><span class="code-line">3x <span class="token comment"># 三次删除字符(等价于删除三个字符): three times delete character</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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">
|
||||
<p>有了这些基本的语言元素,我们就可以着手构造一些简单的命令了。文本编辑命令的基本语法如下:</p>
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line line-number" line="1">动词 介词 名词
|
||||
<pre class="language-shell"><code class="language-shell code-highlight"><span class="code-line">动词 介词 名词
|
||||
</span></code></pre>
|
||||
<p>下面是一些例子</p>
|
||||
<pre class="wrap-text "><code class="language-shell code-highlight"><span class="code-line line-number" line="1">dip <span class="token comment"># 删除一个段落: delete inside paragraph</span>
|
||||
</span><span class="code-line line-number" line="2">vis <span class="token comment"># 选取一个句子: visual select inside sentence</span>
|
||||
</span><span class="code-line line-number" line="3">ciw <span class="token comment"># 修改一个单词: change inside word</span>
|
||||
</span><span class="code-line line-number" line="4">caw <span class="token comment"># 修改一个单词: change around word</span>
|
||||
</span><span class="code-line line-number" line="5">dtx <span class="token comment"># 删除文本直到字符“x”(不包括字符“x”): delete to x</span>
|
||||
</span><span class="code-line line-number" line="6">dfx <span class="token comment"># 删除文本直到字符“x”(包括字符“x”): delete forward x</span>
|
||||
<pre class="wrap-text "><code class="language-shell code-highlight"><span class="code-line">dip <span class="token comment"># 删除一个段落: delete inside paragraph</span>
|
||||
</span><span class="code-line">vis <span class="token comment"># 选取一个句子: visual select inside sentence</span>
|
||||
</span><span class="code-line">ciw <span class="token comment"># 修改一个单词: change inside word</span>
|
||||
</span><span class="code-line">caw <span class="token comment"># 修改一个单词: change around word</span>
|
||||
</span><span class="code-line">dtx <span class="token comment"># 删除文本直到字符“x”(不包括字符“x”): delete to x</span>
|
||||
</span><span class="code-line">dfx <span class="token comment"># 删除文本直到字符“x”(包括字符“x”): delete forward x</span>
|
||||
</span></code></pre>
|
||||
<!--rehype:className=wrap-text -->
|
||||
</div></div></div></div></div><div class="wrap"><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">
|
||||
|
160
docs/xpath.html
160
docs/xpath.html
@ -49,10 +49,10 @@
|
||||
<li>XPath 是 W3C 推荐的</li>
|
||||
</ul>
|
||||
<p>在 <code>Firefox</code> 或 <code>Chrome</code> 控制台中测试:</p>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line line-number" line="1"><span class="token function">$x</span><span class="token punctuation">(</span><span class="token string">'/html/body'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token function">$x</span><span class="token punctuation">(</span><span class="token string">'//h1'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token function">$x</span><span class="token punctuation">(</span><span class="token string">'//h1'</span><span class="token punctuation">)</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">.</span><span class="token property-access">innerText</span>
|
||||
</span><span class="code-line line-number" line="4"><span class="token function">$x</span><span class="token punctuation">(</span><span class="token string">'//a[text()="XPath"]'</span><span class="token punctuation">)</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">.</span><span class="token method function property-access">click</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
<pre class="language-js"><code class="language-js code-highlight"><span class="code-line"><span class="token function">$x</span><span class="token punctuation">(</span><span class="token string">'/html/body'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token function">$x</span><span class="token punctuation">(</span><span class="token string">'//h1'</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line"><span class="token function">$x</span><span class="token punctuation">(</span><span class="token string">'//h1'</span><span class="token punctuation">)</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">.</span><span class="token property-access">innerText</span>
|
||||
</span><span class="code-line"><span class="token function">$x</span><span class="token punctuation">(</span><span class="token string">'//a[text()="XPath"]'</span><span class="token punctuation">)</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">.</span><span class="token method function property-access">click</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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">
|
||||
|
||||
@ -476,88 +476,88 @@
|
||||
<!--rehype:className=show-header-->
|
||||
</div></div></div></div></div><div class="wrap"><div class="wrap-header h2wrap"><h2 id="xpath-predicates谓词"><a aria-hidden="true" tabindex="-1" href="#xpath-predicates谓词"><span class="icon icon-link"></span></a>XPath Predicates(谓词)</h2><div class="wrap-body">
|
||||
</div></div><div class="h2wrap-body"><div class="wrap"><div class="wrap-header h3wrap"><h3 id="predicates谓词"><a aria-hidden="true" tabindex="-1" href="#predicates谓词"><span class="icon icon-link"></span></a>Predicates(谓词)</h3><div class="wrap-body">
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1">//div<span class="token punctuation">[</span>true<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line line-number" line="2">//div<span class="token punctuation">[</span>@class<span class="token operator">=</span><span class="token string">"head"</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line line-number" line="3">//div<span class="token punctuation">[</span>@class<span class="token operator">=</span><span class="token string">"head"</span><span class="token punctuation">]</span><span class="token punctuation">[</span>@id<span class="token operator">=</span><span class="token string">"top"</span><span class="token punctuation">]</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">//div<span class="token punctuation">[</span>true<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line">//div<span class="token punctuation">[</span>@class<span class="token operator">=</span><span class="token string">"head"</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line">//div<span class="token punctuation">[</span>@class<span class="token operator">=</span><span class="token string">"head"</span><span class="token punctuation">]</span><span class="token punctuation">[</span>@id<span class="token operator">=</span><span class="token string">"top"</span><span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
<p>仅当某些条件为真时才限制节点集。它们可以被链接起来。</p>
|
||||
</div></div></div><div class="wrap"><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 line-number" line="1"><span class="token comment"># 比较</span>
|
||||
</span><span class="code-line line-number" line="2">//a<span class="token punctuation">[</span>@id <span class="token operator">=</span> <span class="token string">"xyz"</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line line-number" line="3">//a<span class="token punctuation">[</span>@id <span class="token operator">!=</span> <span class="token string">"xyz"</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line line-number" line="4">//a<span class="token punctuation">[</span>@price <span class="token operator">></span> <span class="token number">25</span><span class="token punctuation">]</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token comment"># 比较</span>
|
||||
</span><span class="code-line">//a<span class="token punctuation">[</span>@id <span class="token operator">=</span> <span class="token string">"xyz"</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line">//a<span class="token punctuation">[</span>@id <span class="token operator">!=</span> <span class="token string">"xyz"</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line">//a<span class="token punctuation">[</span>@price <span class="token operator">></span> <span class="token number">25</span><span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1"><span class="token comment"># 逻辑 (and/or)</span>
|
||||
</span><span class="code-line line-number" line="2">//div<span class="token punctuation">[</span>@id<span class="token operator">=</span><span class="token string">"head"</span> and position<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">=</span><span class="token number">2</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line line-number" line="3">//div<span class="token punctuation">[</span><span class="token punctuation">(</span>x and y<span class="token punctuation">)</span> or not<span class="token punctuation">(</span>z<span class="token punctuation">)</span><span class="token punctuation">]</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token comment"># 逻辑 (and/or)</span>
|
||||
</span><span class="code-line">//div<span class="token punctuation">[</span>@id<span class="token operator">=</span><span class="token string">"head"</span> and position<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">=</span><span class="token number">2</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line">//div<span class="token punctuation">[</span><span class="token punctuation">(</span>x and y<span class="token punctuation">)</span> or not<span class="token punctuation">(</span>z<span class="token punctuation">)</span><span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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 line-number" line="1"><span class="token comment"># 在函数内部使用它们</span>
|
||||
</span><span class="code-line line-number" line="2">//ul<span class="token punctuation">[</span>count<span class="token punctuation">(</span>li<span class="token punctuation">)</span> <span class="token operator">></span> <span class="token number">2</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line line-number" line="3">//ul<span class="token punctuation">[</span>count<span class="token punctuation">(</span>li<span class="token punctuation">[</span>@class<span class="token operator">=</span><span class="token string">'hide'</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token operator">></span> <span class="token number">0</span><span class="token punctuation">]</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token comment"># 在函数内部使用它们</span>
|
||||
</span><span class="code-line">//ul<span class="token punctuation">[</span>count<span class="token punctuation">(</span>li<span class="token punctuation">)</span> <span class="token operator">></span> <span class="token number">2</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line">//ul<span class="token punctuation">[</span>count<span class="token punctuation">(</span>li<span class="token punctuation">[</span>@class<span class="token operator">=</span><span class="token string">'hide'</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token operator">></span> <span class="token number">0</span><span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1"><span class="token comment"># 返回具有 `<li>` 子级的 `<ul>`</span>
|
||||
</span><span class="code-line line-number" line="2">//ul<span class="token punctuation">[</span>li<span class="token punctuation">]</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token comment"># 返回具有 `<li>` 子级的 `<ul>`</span>
|
||||
</span><span class="code-line">//ul<span class="token punctuation">[</span>li<span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
<p>您可以在谓词中使用节点。</p>
|
||||
</div></div></div><div class="wrap"><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 line-number" line="1">//a<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span> <span class="token comment"># 第一个<a></span>
|
||||
</span><span class="code-line line-number" line="2">//a<span class="token punctuation">[</span>last<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">]</span> <span class="token comment"># 最后一个<a></span>
|
||||
</span><span class="code-line line-number" line="3">//ol/li<span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">]</span> <span class="token comment"># 第二个<li></span>
|
||||
</span><span class="code-line line-number" line="4">//ol/li<span class="token punctuation">[</span>position<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">=</span><span class="token number">2</span><span class="token punctuation">]</span> <span class="token comment"># 和上面一样</span>
|
||||
</span><span class="code-line line-number" line="5">//ol/li<span class="token punctuation">[</span>position<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">></span><span class="token number">1</span><span class="token punctuation">]</span> <span class="token comment">#:not(:first-child)</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">//a<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span> <span class="token comment"># 第一个<a></span>
|
||||
</span><span class="code-line">//a<span class="token punctuation">[</span>last<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">]</span> <span class="token comment"># 最后一个<a></span>
|
||||
</span><span class="code-line">//ol/li<span class="token punctuation">[</span><span class="token number">2</span><span class="token punctuation">]</span> <span class="token comment"># 第二个<li></span>
|
||||
</span><span class="code-line">//ol/li<span class="token punctuation">[</span>position<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">=</span><span class="token number">2</span><span class="token punctuation">]</span> <span class="token comment"># 和上面一样</span>
|
||||
</span><span class="code-line">//ol/li<span class="token punctuation">[</span>position<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">></span><span class="token number">1</span><span class="token punctuation">]</span> <span class="token comment">#:not(:first-child)</span>
|
||||
</span></code></pre>
|
||||
<p>将 <code>[]</code> 与数字一起使用,或者使用 <code>last()</code> 或 <code>position()</code>。</p>
|
||||
</div></div></div><div class="wrap"><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 line-number" line="1">a<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">[</span>@href<span class="token operator">=</span><span class="token string">'/'</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line line-number" line="2">a<span class="token punctuation">[</span>@href<span class="token operator">=</span><span class="token string">'/'</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">a<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">[</span>@href<span class="token operator">=</span><span class="token string">'/'</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line">a<span class="token punctuation">[</span>@href<span class="token operator">=</span><span class="token string">'/'</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
<p>顺序很重要,这两个是不同的。</p>
|
||||
</div></div></div><div class="wrap"><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><code class="code-highlight"><span class="code-line line-number" line="1">//section[.//h1[@id='hi']]
|
||||
<pre><code class="code-highlight"><span class="code-line">//section[.//h1[@id='hi']]
|
||||
</span></code></pre>
|
||||
<p>如果它有一个具有 <code>id='hi'</code> 的 <code><h1></code> 后代,则返回 <code><section></code>。</p>
|
||||
</div></div></div></div></div><div class="wrap"><div class="wrap-header h2wrap"><h2 id="xpath-函数"><a aria-hidden="true" tabindex="-1" href="#xpath-函数"><span class="icon icon-link"></span></a>XPath 函数</h2><div class="wrap-body">
|
||||
<!--rehype:body-class=cols-2-->
|
||||
</div></div><div class="h2wrap-body cols-2"><div class="wrap"><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 line-number" line="1">name<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment"># //[starts-with(name(), 'h')]</span>
|
||||
</span><span class="code-line line-number" line="2">text<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment"># //button[text()="Submit"]</span>
|
||||
</span><span class="code-line line-number" line="3"> <span class="token comment"># //button/text()</span>
|
||||
</span><span class="code-line line-number" line="4">lang<span class="token punctuation">(</span>str<span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="5">namespace-uri<span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">name<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment"># //[starts-with(name(), 'h')]</span>
|
||||
</span><span class="code-line">text<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment"># //button[text()="Submit"]</span>
|
||||
</span><span class="code-line"> <span class="token comment"># //button/text()</span>
|
||||
</span><span class="code-line">lang<span class="token punctuation">(</span>str<span class="token punctuation">)</span>
|
||||
</span><span class="code-line">namespace-uri<span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span></code></pre>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1">count<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment"># //table[count(tr)=1]</span>
|
||||
</span><span class="code-line line-number" line="2">position<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment"># //ol/li[position()=2]</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">count<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment"># //table[count(tr)=1]</span>
|
||||
</span><span class="code-line">position<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment"># //ol/li[position()=2]</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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 line-number" line="1">contains<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment"># font[contains(@class,"head")]</span>
|
||||
</span><span class="code-line line-number" line="2">starts-with<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment"># font[starts-with(@class,"head")]</span>
|
||||
</span><span class="code-line line-number" line="3">ends-with<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment"># font[ends-with(@class,"head")]</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">contains<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment"># font[contains(@class,"head")]</span>
|
||||
</span><span class="code-line">starts-with<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment"># font[starts-with(@class,"head")]</span>
|
||||
</span><span class="code-line">ends-with<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment"># font[ends-with(@class,"head")]</span>
|
||||
</span></code></pre>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1">concat<span class="token punctuation">(</span>x,y<span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="2">substring<span class="token punctuation">(</span>str, start, len<span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="3">substring-before<span class="token punctuation">(</span><span class="token string">"01/02"</span>, <span class="token string">"/"</span><span class="token punctuation">)</span> <span class="token comment">#=> 01</span>
|
||||
</span><span class="code-line line-number" line="4">substring-after<span class="token punctuation">(</span><span class="token string">"01/02"</span>, <span class="token string">"/"</span><span class="token punctuation">)</span> <span class="token comment">#=> 02</span>
|
||||
</span><span class="code-line line-number" line="5">translate<span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="6">normalize-space<span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="7">string-length<span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">concat<span class="token punctuation">(</span>x,y<span class="token punctuation">)</span>
|
||||
</span><span class="code-line">substring<span class="token punctuation">(</span>str, start, len<span class="token punctuation">)</span>
|
||||
</span><span class="code-line">substring-before<span class="token punctuation">(</span><span class="token string">"01/02"</span>, <span class="token string">"/"</span><span class="token punctuation">)</span> <span class="token comment">#=> 01</span>
|
||||
</span><span class="code-line">substring-after<span class="token punctuation">(</span><span class="token string">"01/02"</span>, <span class="token string">"/"</span><span class="token punctuation">)</span> <span class="token comment">#=> 02</span>
|
||||
</span><span class="code-line">translate<span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line">normalize-space<span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line">string-length<span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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 line-number" line="1">not<span class="token punctuation">(</span>expr<span class="token punctuation">)</span> <span class="token comment"># button[not(starts-with(text(),"Submit"))]</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">not<span class="token punctuation">(</span>expr<span class="token punctuation">)</span> <span class="token comment"># button[not(starts-with(text(),"Submit"))]</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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 line-number" line="1">string<span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="2">number<span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line line-number" line="3">boolean<span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">string<span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line">number<span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span><span class="code-line">boolean<span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</span></code></pre>
|
||||
</div></div></div></div></div><div class="wrap"><div class="wrap-header h2wrap"><h2 id="xpath-axes"><a aria-hidden="true" tabindex="-1" href="#xpath-axes"><span class="icon icon-link"></span></a>XPath Axes</h2><div class="wrap-body">
|
||||
<!--rehype:body-class=cols-2-->
|
||||
</div></div><div class="h2wrap-body cols-2"><div class="wrap"><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 line-number" line="1">//ul/li <span class="token comment"># ul > li</span>
|
||||
</span><span class="code-line line-number" line="2">//ul/child::li <span class="token comment"># ul > li (same)</span>
|
||||
</span><span class="code-line line-number" line="3">//ul/following-sibling::li <span class="token comment"># ul ~ li</span>
|
||||
</span><span class="code-line line-number" line="4">//ul/descendant-or-self::li <span class="token comment"># ul li</span>
|
||||
</span><span class="code-line line-number" line="5">//ul/ancestor-or-self::li <span class="token comment"># $('ul').closest('li')</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">//ul/li <span class="token comment"># ul > li</span>
|
||||
</span><span class="code-line">//ul/child::li <span class="token comment"># ul > li (same)</span>
|
||||
</span><span class="code-line">//ul/following-sibling::li <span class="token comment"># ul ~ li</span>
|
||||
</span><span class="code-line">//ul/descendant-or-self::li <span class="token comment"># ul li</span>
|
||||
</span><span class="code-line">//ul/ancestor-or-self::li <span class="token comment"># $('ul').closest('li')</span>
|
||||
</span></code></pre>
|
||||
<hr>
|
||||
|
||||
@ -586,29 +586,29 @@
|
||||
<table><thead><tr><th></th><th></th><th></th><th></th></tr></thead><tbody><tr><td><code>//</code></td><td><code>ul</code></td><td><code>/child::</code></td><td><code>li</code></td></tr><tr><td>Axis</td><td>Step</td><td>Axis</td><td>Step</td></tr></tbody></table>
|
||||
<p>表达式的步骤由 <code>/</code> 分隔,通常用于选择子节点。 这并不总是正确的:您可以使用 <code>::</code> 指定不同的“轴”。</p>
|
||||
</div></div></div><div class="wrap"><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 line-number" line="1"><span class="token comment"># 都一样</span>
|
||||
</span><span class="code-line line-number" line="2">//ul/li/a
|
||||
</span><span class="code-line line-number" line="3">//child::ul/child::li/child::a
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token comment"># 都一样</span>
|
||||
</span><span class="code-line">//ul/li/a
|
||||
</span><span class="code-line">//child::ul/child::li/child::a
|
||||
</span></code></pre>
|
||||
<p><code>child::</code> is the default axis. This makes <code>//a/b/c</code> work.</p>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1"><span class="token comment"># 都一样</span>
|
||||
</span><span class="code-line line-number" line="2"><span class="token comment"># 这是因为 `child::li` 是真实的</span>
|
||||
</span><span class="code-line line-number" line="3">//ul<span class="token punctuation">[</span>li<span class="token punctuation">]</span>
|
||||
</span><span class="code-line line-number" line="4">//ul<span class="token punctuation">[</span>child::li<span class="token punctuation">]</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token comment"># 都一样</span>
|
||||
</span><span class="code-line"><span class="token comment"># 这是因为 `child::li` 是真实的</span>
|
||||
</span><span class="code-line">//ul<span class="token punctuation">[</span>li<span class="token punctuation">]</span>
|
||||
</span><span class="code-line">//ul<span class="token punctuation">[</span>child::li<span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1"><span class="token comment"># 都一样</span>
|
||||
</span><span class="code-line line-number" line="2">//ul<span class="token punctuation">[</span>count<span class="token punctuation">(</span>li<span class="token punctuation">)</span> <span class="token operator">></span> <span class="token number">2</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line line-number" line="3">//ul<span class="token punctuation">[</span>count<span class="token punctuation">(</span>child::li<span class="token punctuation">)</span> <span class="token operator">></span> <span class="token number">2</span><span class="token punctuation">]</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token comment"># 都一样</span>
|
||||
</span><span class="code-line">//ul<span class="token punctuation">[</span>count<span class="token punctuation">(</span>li<span class="token punctuation">)</span> <span class="token operator">></span> <span class="token number">2</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line">//ul<span class="token punctuation">[</span>count<span class="token punctuation">(</span>child::li<span class="token punctuation">)</span> <span class="token operator">></span> <span class="token number">2</span><span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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 line-number" line="1"><span class="token comment"># 都一样</span>
|
||||
</span><span class="code-line line-number" line="2">//div//h4
|
||||
</span><span class="code-line line-number" line="3">//div/descendant-or-self::h4
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token comment"># 都一样</span>
|
||||
</span><span class="code-line">//div//h4
|
||||
</span><span class="code-line">//div/descendant-or-self::h4
|
||||
</span></code></pre>
|
||||
<p><code>//</code> 是 <code>descendant-or-self::</code> 轴的缩写。</p>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1"><span class="token comment"># 都一样</span>
|
||||
</span><span class="code-line line-number" line="2">//ul//<span class="token punctuation">[</span>last<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line line-number" line="3">//ul/descendant-or-self::<span class="token punctuation">[</span>last<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">]</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line"><span class="token comment"># 都一样</span>
|
||||
</span><span class="code-line">//ul//<span class="token punctuation">[</span>last<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">]</span>
|
||||
</span><span class="code-line">//ul/descendant-or-self::<span class="token punctuation">[</span>last<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap 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-->
|
||||
@ -691,33 +691,33 @@
|
||||
<!--rehype:className=show-header-->
|
||||
<p>您还可以使用其他轴。</p>
|
||||
</div></div></div><div class="wrap"><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 line-number" line="1">//a <span class="token operator">|</span> //span
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">//a <span class="token operator">|</span> //span
|
||||
</span></code></pre>
|
||||
<p>使用 <code>|</code> 连接两个表达式。</p>
|
||||
</div></div></div></div></div><div class="wrap"><div class="wrap-header h2wrap"><h2 id="xpath-更多示例"><a aria-hidden="true" tabindex="-1" href="#xpath-更多示例"><span class="icon icon-link"></span></a>XPath 更多示例</h2><div class="wrap-body">
|
||||
<!--rehype:body-class=cols-2-->
|
||||
</div></div><div class="h2wrap-body cols-2"><div class="wrap"><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 line-number" line="1">//* <span class="token comment"># 所有元素</span>
|
||||
</span><span class="code-line line-number" line="2">count<span class="token punctuation">(</span>//*<span class="token punctuation">)</span> <span class="token comment"># 计算所有元素</span>
|
||||
</span><span class="code-line line-number" line="3"><span class="token punctuation">(</span>//h1<span class="token punctuation">)</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span>/text<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment"># 第一个 h1 标题的文本</span>
|
||||
</span><span class="code-line line-number" line="4">//li<span class="token punctuation">[</span>span<span class="token punctuation">]</span> <span class="token comment"># 找到一个 <li> 里面有一个 <span></span>
|
||||
</span><span class="code-line line-number" line="5"> <span class="token comment"># ...扩展到 //li[child::span]</span>
|
||||
</span><span class="code-line line-number" line="6">//ul/li/<span class="token punctuation">..</span> <span class="token comment"># 使用 .. 选择父级</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">//* <span class="token comment"># 所有元素</span>
|
||||
</span><span class="code-line">count<span class="token punctuation">(</span>//*<span class="token punctuation">)</span> <span class="token comment"># 计算所有元素</span>
|
||||
</span><span class="code-line"><span class="token punctuation">(</span>//h1<span class="token punctuation">)</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span>/text<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment"># 第一个 h1 标题的文本</span>
|
||||
</span><span class="code-line">//li<span class="token punctuation">[</span>span<span class="token punctuation">]</span> <span class="token comment"># 找到一个 <li> 里面有一个 <span></span>
|
||||
</span><span class="code-line"> <span class="token comment"># ...扩展到 //li[child::span]</span>
|
||||
</span><span class="code-line">//ul/li/<span class="token punctuation">..</span> <span class="token comment"># 使用 .. 选择父级</span>
|
||||
</span></code></pre>
|
||||
</div></div></div><div class="wrap"><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 line-number" line="1">//section<span class="token punctuation">[</span>h1<span class="token punctuation">[</span>@id<span class="token operator">=</span><span class="token string">'section-name'</span><span class="token punctuation">]</span><span class="token punctuation">]</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">//section<span class="token punctuation">[</span>h1<span class="token punctuation">[</span>@id<span class="token operator">=</span><span class="token string">'section-name'</span><span class="token punctuation">]</span><span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
<p>查找直接包含 <code>h1#section-name</code> 的 <code><section></code></p>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line line-number" line="1">//section<span class="token punctuation">[</span>//h1<span class="token punctuation">[</span>@id<span class="token operator">=</span><span class="token string">'section-name'</span><span class="token punctuation">]</span><span class="token punctuation">]</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">//section<span class="token punctuation">[</span>//h1<span class="token punctuation">[</span>@id<span class="token operator">=</span><span class="token string">'section-name'</span><span class="token punctuation">]</span><span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
<p>查找包含 <code>h1#section-name</code> 的 <code><section></code>。
|
||||
(与上面相同,但使用后代或自我而不是孩子)</p>
|
||||
</div></div></div><div class="wrap"><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 line-number" line="1">./ancestor-or-self::<span class="token punctuation">[</span>@class<span class="token operator">=</span><span class="token string">"box"</span><span class="token punctuation">]</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">./ancestor-or-self::<span class="token punctuation">[</span>@class<span class="token operator">=</span><span class="token string">"box"</span><span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
<p>像 <code>jQuery</code> 的 <code>$().closest('.box')</code> 一样工作。</p>
|
||||
</div></div></div><div class="wrap"><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 line-number" line="1">//item<span class="token punctuation">[</span>@price <span class="token operator">></span> <span class="token number">2</span>*@discount<span class="token punctuation">]</span>
|
||||
<pre class="language-bash"><code class="language-bash code-highlight"><span class="code-line">//item<span class="token punctuation">[</span>@price <span class="token operator">></span> <span class="token number">2</span>*@discount<span class="token punctuation">]</span>
|
||||
</span></code></pre>
|
||||
<p>查找 <code><item></code> 并检查其属性</p>
|
||||
</div></div></div></div></div><div class="wrap"><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">
|
||||
|
@ -763,6 +763,19 @@ body:not(.home) .h2wrap > h2 a::after {
|
||||
.token.italic { font-style: italic; }
|
||||
.token.entity { cursor: help; }
|
||||
|
||||
.highlight-line {
|
||||
background-color: var(--color-neutral-muted);
|
||||
display: block;
|
||||
}
|
||||
.code-line.line-number::before {
|
||||
display: inline-block;
|
||||
width: 1rem;
|
||||
text-align: right;
|
||||
margin-right: 16px;
|
||||
margin-left: -8px;
|
||||
color: var(--color-fg-subtle);
|
||||
content: attr(line);
|
||||
}
|
||||
/* 代码高亮 End */
|
||||
|
||||
.footer-wrap {
|
||||
|
Reference in New Issue
Block a user