Files
RedBear-OS/local/recipes/kde/kf6-syntaxhighlighting/source/autotests/html/highlight.sh.html
T

606 lines
92 KiB
HTML

<!DOCTYPE html>
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>highlight.sh</title>
<meta name="generator" content="KF5::SyntaxHighlighting - Definition (Bash) - Theme (Breeze Light)"/>
</head><body style="background-color:#ffffff;color:#1f1c1b"><pre>
<span style="color:#898887">#! /bin/sh</span>
<span style="color:#898887"># This is a test script for the Katepart Bash Syntax Highlighting by</span>
<span style="color:#898887"># Wilbert Berendsen. This is not runnable !!!</span>
<span style="color:#898887"># The highlighting recognizes basic types of input, and has a few special cases that</span>
<span style="color:#898887"># are all in FindCommands. The main objective is to create really proper nesting of</span>
<span style="color:#898887"># (multiline) strings, variables, expressions, etc.</span>
<span style="color:#898887"># ============== Tests: ===============</span>
<span style="color:#898887"># basic types:</span>
<span style="color:#644a9b;font-weight:bold">echo</span> <span style="color:#bf0303">'single quoted string'</span>
<span style="color:#644a9b;font-weight:bold">echo</span> <span style="color:#bf0303">"double quoted string"</span>
<span style="color:#644a9b;font-weight:bold">echo</span> <span style="color:#bf0303">$'string with esc</span><span style="color:#0057ae">\a</span><span style="color:#bf0303">pes</span><span style="color:#0057ae">\x0d</span><span style="color:#bf0303">in it'</span>
<span style="color:#644a9b;font-weight:bold">echo</span> <span style="color:#bf0303">$"</span><span style="color:#bf0303">string meant to be translated"</span>
<span style="color:#644a9b;font-weight:bold">echo</span> <span style="color:#bf0303">"$"</span>
<span style="color:#898887"># comments:</span>
<span style="color:#898887"># this is a comment</span>
<span style="color:#898887">#this too</span>
<span style="color:#644a9b;font-weight:bold">echo</span> this is#nt a comment
<span style="color:#644a9b">dcop</span> kate EditInterface#1 <span style="color:#898887">#this is</span>
<span style="color:#644a9b">grep</span> <span style="color:#0057ae">-e</span> <span style="color:#bf0303">"^default/linux/amd64/"</span> <span style="font-weight:bold">|</span><span style="color:#0095ff;font-weight:bold">\ #this</span> is not a comment but <span style="color:#898887">#this is</span>
<span style="color:#644a9b">mkdir</span> this<span style="color:#0057ae">\ </span>isnt<span style="color:#0057ae">\ </span>#a<span style="color:#0057ae">\ </span>comment
<span style="color:#644a9b">mkdir</span> this<span style="color:#0057ae">\ </span>isnt<span style="color:#0057ae">\\\;</span>#a<span style="color:#0057ae">\ </span>comment
<span style="color:#644a9b">mkdir</span> this<span style="color:#0057ae">\\</span> <span style="color:#898887">#is a comment</span>
<span style="color:#ca60ca">&lt;&lt;'#BLOCK-COMMENT'</span>
<span style="color:#81ca2d;background-color:#f7e6e6;font-weight:bold">NOTE</span><span style="color:#898887"> This is the "miltiline" comment.</span>
<span style="color:#0057ae;background-color:#e0e9f8">[===[.rst:</span>
<span style="color:#898887">Docs</span>
<span style="color:#898887">----</span>
<span style="color:#898887">Documentation block in </span><span style="color:#0057ae">``RST``</span><span style="color:#898887"> format </span><span style="font-weight:bold">**starts**</span><span style="color:#898887"> </span><span style="font-style:italic">*here*</span><span style="color:#898887">.</span>
<span style="color:#0057ae;background-color:#e0e9f8">]===]</span>
<span style="color:#ca60ca">#BLOCK-COMMENT</span>
<span style="color:#644a9b;font-weight:bold">:</span><span style="color:#898887"> </span><span style="color:#ca60ca">&lt;&lt; '#SC2188'</span>
<span style="color:#0057ae;background-color:#e0e9f8">[====[.rst:</span>
<span style="color:#898887">The </span><span style="font-style:italic">*multiline*</span><span style="color:#898887"> comment does not trigger the </span><span style="color:#006e28">SC2188_</span><span style="color:#898887"> warning of </span><span style="color:#b08000">`shellcheck`</span><span style="color:#898887">.</span>
<span style="color:#0057ae">.. _SC2188: </span><span style="color:#006e28">https://www.shellcheck.net/wiki/SC2188</span>
<span style="color:#0057ae;background-color:#e0e9f8">]====]</span>
<span style="color:#898887">... continue with _normal_ Bash comment.</span>
<span style="color:#ca60ca">#SC2188</span>
<span style="color:#898887"># brace expansion</span>
<span style="color:#644a9b">mv</span> my_file.<span style="color:#0057ae">{JPG</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">jpg}</span>
<span style="color:#644a9b;font-weight:bold">echo</span> f.<span style="color:#0057ae">{</span><span style="color:#b08000">01</span><span style="color:#0057ae">..</span><span style="color:#b08000">100</span><span style="color:#0057ae">..</span><span style="color:#b08000">3</span><span style="color:#0057ae">}</span> f.<span style="color:#0057ae">{</span>Z<span style="color:#0057ae">..</span>a<span style="color:#0057ae">..</span><span style="color:#b08000">-3</span><span style="color:#0057ae">}</span>
<span style="color:#644a9b;font-weight:bold">echo</span> f.<span style="color:#0057ae">{</span><span style="color:#b08000">01</span><span style="color:#0057ae">..</span><span style="color:#b08000">100</span><span style="color:#0057ae">}</span> f.<span style="color:#0057ae">{</span>a<span style="color:#0057ae">..</span>Z<span style="color:#0057ae">}</span>
<span style="color:#898887"># no brace expansion</span>
<span style="color:#644a9b;font-weight:bold">echo</span> f.{..100} f.{1..Z} f.{a..Z..}
<span style="color:#898887"># special characters are escaped:</span>
<span style="color:#644a9b;font-weight:bold">echo</span> <span style="color:#0057ae">\(</span>output<span style="color:#0057ae">\)</span> <span style="color:#0057ae">\&amp;\|</span> <span style="color:#0057ae">\></span> <span style="color:#0057ae">\&lt;</span> <span style="color:#0057ae">\"</span> <span style="color:#0057ae">\'</span> <span style="color:#0057ae">\*</span>
<span style="color:#898887"># variable substitution:</span>
<span style="color:#644a9b;font-weight:bold">echo</span> <span style="color:#0057ae">$</span><span style="color:#0057ae">filename</span>.ext
<span style="color:#644a9b;font-weight:bold">echo</span> <span style="color:#0057ae">$</span><span style="color:#0057ae">filename_ext</span>
<span style="color:#644a9b;font-weight:bold">echo</span> <span style="color:#0057ae">${</span><span style="color:#0057ae">filename</span><span style="color:#0057ae">}</span>_ext
<span style="color:#644a9b;font-weight:bold">echo</span> text<span style="color:#0057ae">${</span><span style="color:#0057ae">array</span><span style="color:#ca60ca">[</span><span style="color:#0057ae">$</span><span style="color:#0057ae">subscript</span><span style="color:#ca60ca">]</span><span style="color:#0057ae">}</span>.text
<span style="color:#644a9b;font-weight:bold">echo</span> text<span style="color:#0057ae">${</span><span style="color:#0057ae">array</span><span style="color:#ca60ca">[</span><span style="color:#bf0303">"string"</span><span style="color:#ca60ca">]</span><span style="color:#0057ae">}</span>.text
<span style="color:#644a9b;font-weight:bold">echo</span> <span style="color:#0057ae">${</span><span style="color:#ca60ca">!</span><span style="color:#0057ae">prefix</span><span style="color:#ca60ca">*</span><span style="color:#0057ae">}</span>
<span style="color:#644a9b;font-weight:bold">echo</span> <span style="color:#0057ae">${</span><span style="color:#ca60ca">!</span><span style="color:#0057ae">redir</span><span style="color:#0057ae">}</span> <span style="color:#0057ae">${</span><span style="color:#ca60ca">!</span><span style="color:#0057ae">3</span><span style="color:#0057ae">}</span> <span style="color:#0057ae">${</span><span style="color:#ca60ca">!#</span><span style="color:#0057ae">}</span> <span style="color:#0057ae">${</span><span style="color:#ca60ca">!##</span><span style="color:#0057ae">}</span> <span style="color:#0057ae">${</span><span style="color:#ca60ca">!@###</span><span style="color:#0057ae">}</span> <span style="color:#0057ae">${</span><span style="color:#0057ae">!</span><span style="color:#0057ae">}</span>
<span style="color:#644a9b;font-weight:bold">echo</span> short are <span style="color:#0057ae">$</span><span style="color:#0057ae">_</span>, <span style="color:#0057ae">$</span><span style="color:#0057ae">$</span>, <span style="color:#0057ae">$</span><span style="color:#0057ae">?</span>, <span style="color:#0057ae">${</span><span style="color:#0057ae">@</span><span style="color:#0057ae">}</span>, etc.
<span style="color:#644a9b;font-weight:bold">echo</span> <span style="color:#0057ae">${</span><span style="color:#0057ae">variable</span><span style="color:#ca60ca">/</span><span style="color:#ff5500">a</span><span style="color:#ca60ca">/</span>d<span style="color:#0057ae">}</span>
<span style="color:#644a9b;font-weight:bold">echo</span> <span style="color:#0057ae">${</span><span style="color:#0057ae">1</span><span style="color:#ca60ca">:-</span>default<span style="color:#0057ae">}</span>
<span style="color:#644a9b;font-weight:bold">echo</span> <span style="color:#0057ae">${</span><span style="color:#0057ae">10</span><span style="color:#0057ae">}</span> <span style="color:#0057ae">$</span><span style="color:#0057ae">1</span>0a <span style="color:#898887"># 9 is max</span>
<span style="color:#898887"># expression subst:</span>
<span style="color:#644a9b;font-weight:bold">echo</span> <span style="color:#0057ae">$((</span> <span style="color:#0057ae">cd</span> <span style="color:#ca60ca">&lt;&lt;</span> <span style="color:#0057ae">ed</span> <span style="color:#ca60ca">+</span> <span style="color:#b08000">1</span> <span style="color:#0057ae">))</span>
<span style="color:#898887"># command subst:</span>
<span style="color:#644a9b;font-weight:bold">echo</span> <span style="color:#0057ae">$(</span><span style="color:#644a9b">ls</span> <span style="color:#0057ae">-l</span><span style="color:#0057ae">)</span>
<span style="color:#644a9b;font-weight:bold">echo</span> <span style="font-weight:bold">`</span><span style="color:#644a9b">cat</span> myfile<span style="font-weight:bold">`</span>
<span style="color:#898887"># file subst:</span>
<span style="color:#644a9b;font-weight:bold">echo</span> <span style="color:#0057ae">$(</span><span style="color:#ca60ca">&lt;</span><span style="color:#0057ae">$</span><span style="color:#0057ae">filename</span><span style="color:#0057ae">)</span>
<span style="color:#644a9b;font-weight:bold">echo</span> <span style="color:#0057ae">$(</span><span style="color:#ca60ca">&lt;</span>/path/to/myfile<span style="color:#0057ae">)</span>
<span style="color:#898887"># process subst:</span>
<span style="color:#644a9b">sort</span> <span style="color:#ca60ca">&lt;(</span><span style="color:#0095ff;font-weight:bold">show_labels</span><span style="color:#ca60ca">)</span> <span style="font-weight:bold">|</span> <span style="color:#644a9b">sed</span> <span style="color:#bf0303">'s/a/bg'</span> <span style="color:#ca60ca">></span> my_file.txt <span style="color:#b08000">2</span><span style="color:#ca60ca">>&amp;</span><span style="color:#b08000">1</span>
<span style="color:#898887"># All substitutions also work in strings:</span>
<span style="color:#644a9b;font-weight:bold">echo</span> <span style="color:#bf0303">"subst </span><span style="color:#0057ae">${</span><span style="color:#0057ae">in</span><span style="color:#0057ae">}</span><span style="color:#bf0303">side string"</span> <span style="color:#bf0303">'not $inside this ofcourse'</span>
<span style="color:#644a9b;font-weight:bold">echo</span> <span style="color:#bf0303">"The result is </span><span style="color:#0057ae">$((</span> <span style="color:#0057ae">$</span><span style="color:#0057ae">a</span> <span style="color:#ca60ca">+</span> <span style="color:#0057ae">$</span><span style="color:#0057ae">b</span> <span style="color:#0057ae">))</span><span style="color:#bf0303">. Thanks!"</span>
<span style="color:#644a9b;font-weight:bold">echo</span> <span style="color:#bf0303">"Your homedir contains </span><span style="font-weight:bold">`</span><span style="color:#644a9b">ls</span> <span style="color:#0057ae">$</span><span style="color:#0057ae">HOME</span> <span style="font-weight:bold">|</span><span style="color:#644a9b">wc</span> <span style="color:#0057ae">-l</span><span style="font-weight:bold">`</span><span style="color:#bf0303"> files."</span>
<span style="color:#898887"># Escapes in strings:</span>
<span style="color:#0057ae">p</span><span style="color:#ca60ca">=</span><span style="color:#bf0303">"String </span><span style="color:#0057ae">\`</span><span style="color:#bf0303"> with </span><span style="color:#0057ae">\$</span><span style="color:#bf0303"> escapes </span><span style="color:#0057ae">\"</span><span style="color:#bf0303"> "</span><span style="font-weight:bold">;</span>
<span style="color:#898887"># keywords are black, builtins dark purple and common commands lighter purple</span>
<span style="color:#644a9b;font-weight:bold">set</span>
<span style="color:#644a9b;font-weight:bold">exit</span>
<span style="color:#644a9b">login</span>
<span style="color:#898887"># Other colorings:</span>
<span style="color:#644a9b">error()</span> <span style="font-weight:bold">{</span>
<span style="color:#644a9b">cat</span> /usr/bin/lesspipe.sh
<span style="color:#0095ff;font-weight:bold">runscript</span> <span style="color:#ca60ca">>&amp;</span> redir.bak
<span style="color:#644a9b;font-weight:bold">exec</span> <span style="color:#b08000">3</span><span style="color:#ca60ca">>&amp;</span><span style="color:#b08000">4</span>
<span style="font-weight:bold">}</span>
<span style="color:#898887"># do - done make code blocks</span>
<span style="font-weight:bold">while</span> <span style="color:#644a9b;font-weight:bold">[</span> <span style="color:#0057ae">$</span><span style="color:#0057ae">p</span> <span style="color:#006e28">-lt</span> <span style="color:#0057ae">$</span><span style="color:#0057ae">q</span> <span style="color:#644a9b;font-weight:bold">]</span>
<span style="font-weight:bold">do</span>
<span style="color:#644a9b">chown</span> 0644 <span style="color:#0057ae">$</span><span style="color:#0057ae">file</span>.<span style="color:#0057ae">$</span><span style="color:#0057ae">p</span>
<span style="font-weight:bold">done</span>
<span style="color:#898887"># braces as well</span>
<span style="color:#0095ff;font-weight:bold">run_prog</span> <span style="font-weight:bold">|</span> <span style="color:#644a9b">sort</span> <span style="color:#0057ae">-u</span> <span style="font-weight:bold">|</span>
<span style="font-weight:bold">{</span>
<span style="color:#644a9b;font-weight:bold">echo</span> Header
<span style="font-weight:bold">while</span> <span style="color:#644a9b;font-weight:bold">read</span> <span style="color:#0057ae">a</span> <span style="color:#0057ae">b</span> <span style="color:#0057ae">d</span>
<span style="font-weight:bold">do</span>
<span style="color:#644a9b;font-weight:bold">echo</span> <span style="color:#0057ae">$</span><span style="color:#0057ae">a</span>/<span style="color:#0057ae">$</span><span style="color:#0057ae">b</span>/<span style="color:#0057ae">$</span><span style="color:#0057ae">c</span>
<span style="font-weight:bold">done</span>
<span style="color:#644a9b;font-weight:bold">echo</span> Footer
<span style="font-weight:bold">}</span>
<span style="color:#898887"># Any constructions can be nested:</span>
<span style="color:#644a9b;font-weight:bold">echo</span> <span style="color:#bf0303">"A long string with </span><span style="color:#0057ae">$(</span>
<span style="font-weight:bold">if</span> <span style="color:#644a9b;font-weight:bold">[</span> <span style="color:#0057ae">$</span><span style="color:#0057ae">count</span> <span style="color:#006e28">-gt</span> 100 <span style="color:#644a9b;font-weight:bold">]</span> <span style="font-weight:bold">;</span> <span style="font-weight:bold">then</span>
<span style="color:#644a9b;font-weight:bold">echo</span> <span style="color:#bf0303">"much"</span>
<span style="font-weight:bold">else</span>
<span style="color:#644a9b;font-weight:bold">echo</span> <span style="color:#bf0303">"not much"</span>
<span style="font-weight:bold">fi</span> <span style="color:#0057ae">)</span><span style="color:#bf0303"> substitutions."</span> <span style="font-weight:bold">;</span>
<span style="color:#898887"># Even the case construct is correctly folded:</span>
<span style="color:#644a9b;font-weight:bold">test</span> <span style="color:#0057ae">-f</span> blaat <span style="font-weight:bold">&amp;&amp;</span>
<span style="font-weight:bold">(</span> <span style="color:#0095ff;font-weight:bold">do_something</span>
<span style="font-weight:bold">case</span> <span style="color:#0057ae">$</span><span style="color:#0057ae">p</span> <span style="font-weight:bold">in</span>
<span style="color:#006e28">*</span><span style="color:#ff5500">bak</span><span style="font-weight:bold">)</span>
<span style="color:#0095ff;font-weight:bold">do_bak</span> <span style="color:#0057ae">$</span><span style="color:#0057ae">p</span>
<span style="font-weight:bold">;;</span>
<span style="color:#006e28">*</span><span style="font-weight:bold">)</span>
<span style="color:#0095ff;font-weight:bold">dont_bak</span> <span style="color:#0057ae">$</span><span style="color:#0057ae">p</span>
<span style="font-weight:bold">;;</span>
<span style="font-weight:bold">esac</span>
<span style="font-weight:bold">)</span> <span style="color:#898887"># despite the extra parentheses in the case construction.</span>
<span style="color:#898887"># more control flow</span>
<span style="font-weight:bold">while</span> <span style="color:#644a9b;font-weight:bold">:</span><span style="font-weight:bold">;</span>
<span style="font-weight:bold">break</span>
<span style="font-weight:bold">continue</span>
<span style="font-weight:bold">return</span>
<span style="font-weight:bold">done</span>
<span style="color:#898887"># variable assignments:</span>
<span style="color:#0057ae">DIR</span><span style="color:#ca60ca">=</span>/dev
<span style="color:#0057ae">p</span><span style="color:#ca60ca">=</span><span style="font-weight:bold">`</span><span style="color:#644a9b">ls</span><span style="font-weight:bold">`</span>
<span style="color:#0057ae">LC_ALL</span><span style="color:#ca60ca">=</span><span style="color:#bf0303">"nl"</span> <span style="color:#644a9b">dcop</span> <span style="color:#bf0303">'kate*'</span>
<span style="color:#0057ae">_VAR</span><span style="color:#ca60ca">=</span>val
<span style="color:#0057ae">ARR</span><span style="color:#ca60ca">=</span><span style="color:#0057ae">(</span>this is an array<span style="color:#0057ae">)</span>
<span style="color:#0057ae">ARR2</span><span style="color:#ca60ca">=</span><span style="color:#0057ae">(</span><span style="color:#ca60ca">[</span>this<span style="color:#ca60ca">]</span><span style="color:#0057ae">=</span>too <span style="color:#ca60ca">[</span>and<span style="color:#ca60ca">]</span><span style="color:#0057ae">=</span><span style="color:#bf0303">"this too"</span><span style="color:#0057ae">)</span>
<span style="color:#0057ae">usage</span><span style="color:#ca60ca">=</span><span style="color:#bf0303">"</span><span style="color:#0057ae">$</span><span style="color:#0057ae">0</span><span style="color:#bf0303"> -- version </span><span style="color:#0057ae">$</span><span style="color:#0057ae">VERSION</span>
<span style="color:#bf0303">Multiple lines of output</span>
<span style="color:#bf0303">can be possible."</span>
<span style="color:#0057ae">ANSWER</span><span style="color:#ca60ca">=</span>yes <span style="color:#898887"># here 'yes' isn't highlighed as command</span>
<span style="color:#898887"># Some commands expect variable names, these are colored correctly:</span>
<span style="color:#644a9b;font-weight:bold">export</span> <span style="color:#0057ae">PATH</span><span style="color:#ca60ca">=</span>/my/bin:<span style="color:#0057ae">$</span><span style="color:#0057ae">PATH</span> <span style="color:#0057ae">BLAAT</span>
<span style="color:#644a9b;font-weight:bold">export</span> <span style="color:#0057ae">A</span> <span style="color:#0057ae">B</span> <span style="color:#0057ae">D</span>
<span style="color:#644a9b;font-weight:bold">local</span> <span style="color:#0057ae">p</span><span style="color:#ca60ca">=</span>3 <span style="color:#0057ae">x</span> <span style="color:#0057ae">y</span><span style="color:#ca60ca">=</span><span style="color:#bf0303">'\'</span>
<span style="color:#644a9b;font-weight:bold">read</span> <span style="color:#0057ae">x</span> <span style="color:#0057ae">y</span> <span style="color:#0057ae">z</span> <span style="color:#ca60ca">&lt;&lt;&lt;</span> <span style="color:#0057ae">$</span><span style="color:#0057ae">hallo</span>
<span style="color:#644a9b;font-weight:bold">unset</span> <span style="color:#0057ae">B</span>
<span style="color:#644a9b;font-weight:bold">declare</span> <span style="color:#0057ae">-a</span> <span style="color:#0057ae">VAR1</span> <span style="color:#0057ae">VAR2</span> <span style="font-weight:bold">&amp;&amp;</span> <span style="color:#644a9b;font-weight:bold">exit</span>
<span style="color:#644a9b;font-weight:bold">declare</span> <span style="color:#0057ae">less</span> <span style="color:#0057ae">a</span> <span style="font-weight:bold">&amp;&amp;</span> <span style="color:#0095ff;font-weight:bold">b</span>
<span style="color:#644a9b;font-weight:bold">declare</span> <span style="color:#0057ae">a</span><span style="color:#ca60ca">=</span><span style="color:#0057ae">(</span>1 2<span style="color:#0057ae">)</span>
<span style="color:#644a9b;font-weight:bold">getopts</span> <span style="color:#ca60ca">:</span>h<span style="color:#ca60ca">:</span>l<span style="color:#ca60ca">::</span>d <span style="color:#0057ae">arg</span>
<span style="color:#644a9b;font-weight:bold">read</span> <span style="color:#898887">#comment</span>
<span style="color:#644a9b;font-weight:bold">let</span> <span style="color:#0057ae">a</span><span style="color:#ca60ca">=</span><span style="color:#b08000">4</span><span style="color:#ca60ca">+</span><span style="color:#b08000">4</span> <span style="color:#b08000">3</span><span style="color:#ca60ca">+</span><span style="color:#0057ae">a</span> <span style="color:#0057ae">b</span><span style="color:#ca60ca">=</span><span style="color:#0057ae">c</span><span style="color:#ca60ca">+</span><span style="color:#b08000">3</span> <span style="color:#0057ae">d</span><span style="color:#ca60ca">+</span><span style="color:#b08000">3</span> <span style="color:#0057ae">d</span><span style="color:#006e28">*</span>4 <span style="color:#898887"># * is a glob</span>
<span style="color:#898887"># options are recoqnized:</span>
<span style="color:#644a9b">zip</span> <span style="color:#0057ae">-f</span><span style="color:#ca60ca">=</span>file.zip
<span style="color:#0095ff;font-weight:bold">./configure</span> <span style="color:#0057ae">--destdir</span><span style="color:#ca60ca">=</span>/usr
<span style="color:#644a9b">make</span> destdir=/usr/
<span style="color:#898887"># [[ and [ correctly need spaces to be regarded as structure,</span>
<span style="color:#898887"># otherwise they are patterns (currently treated as normal text)</span>
<span style="font-weight:bold">if</span> <span style="color:#644a9b;font-weight:bold">[</span> <span style="color:#bf0303">"</span><span style="color:#0057ae">$</span><span style="color:#0057ae">p</span><span style="color:#bf0303">"</span> <span style="color:#006e28">==</span> <span style="color:#bf0303">""</span> <span style="color:#644a9b;font-weight:bold">]</span> <span style="font-weight:bold">;</span> <span style="font-weight:bold">then</span>
<span style="color:#644a9b">ls</span> /usr/bin/<span style="color:#006e28">[</span><span style="color:#ff5500">a</span><span style="color:#006e28">-</span><span style="color:#ff5500">z</span><span style="color:#006e28">]*</span>
<span style="font-weight:bold">elif</span> <span style="font-weight:bold">[[</span> <span style="color:#0057ae">$</span><span style="color:#0057ae">p</span> <span style="color:#006e28">==</span> 0 <span style="font-weight:bold">]]</span> <span style="font-weight:bold">;</span> <span style="font-weight:bold">then</span>
<span style="color:#644a9b">ls</span> /usr/share/<span style="color:#0057ae">$</span><span style="color:#0057ae">p</span>
<span style="font-weight:bold">fi</span>
<span style="color:#898887"># Fixed:</span>
<span style="color:#644a9b">ls</span> a<span style="color:#006e28">[</span><span style="color:#ff5500">ab</span><span style="color:#006e28">]*</span> <span style="color:#898887"># dont try to interprete as assignment with subscript (fixed)</span>
<span style="color:#0057ae">a</span><span style="color:#ca60ca">[</span>ab<span style="color:#ca60ca">]</span>
<span style="color:#0057ae">a</span><span style="color:#ca60ca">[</span>ab<span style="color:#ca60ca">]</span><span style="color:#ca60ca">=</span>sa
<span style="color:#898887"># Here documents are difficult to catch:</span>
<span style="color:#644a9b">cat</span> <span style="color:#ca60ca">></span> myfile <span style="color:#ca60ca">&lt;&lt; __EOF__</span>
<span style="color:#bf0303">You're right, this is definitely no bash code</span>
<span style="color:#bf0303">But ls more </span><span style="color:#0057ae">$</span><span style="color:#0057ae">parameters</span><span style="color:#bf0303"> should be expanded.</span>
<span style="color:#ca60ca">__EOF__</span>
<span style="color:#898887"># quoted:</span>
<span style="color:#644a9b">cat</span> <span style="color:#ca60ca">&lt;&lt; "EOF"</span> <span style="font-weight:bold">|</span> <span style="color:#644a9b">egrep</span> <span style="color:#bf0303">"this"</span> <span style="color:#ca60ca">>&amp;</span><span style="color:#b08000">4</span> <span style="color:#898887"># the rest of the line is still considered bash source</span>
<span style="color:#bf0303">You're right, this is definitely no bash code</span>
<span style="color:#bf0303">But ls more $parameters should be expanded. :-></span>
<span style="color:#ca60ca">EOF</span>
<span style="color:#644a9b">cat</span> <span style="color:#ca60ca">&lt;&lt;bla</span> <span style="font-weight:bold">||</span> <span style="color:#644a9b;font-weight:bold">exit</span>
<span style="color:#bf0303">bla bla</span>
<span style="color:#ca60ca">bla</span>
<span style="color:#898887"># indented:</span>
<span style="font-weight:bold">if</span> <span style="color:#644a9b">true</span>
<span style="font-weight:bold">then</span>
<span style="color:#644a9b">cat</span> <span style="color:#ca60ca">&lt;&lt;- EOF</span>
<span style="color:#bf0303"> Indented text with a </span><span style="color:#0057ae">$</span><span style="color:#0057ae">dollar</span><span style="color:#bf0303"> or </span><span style="color:#0057ae">\$</span><span style="color:#bf0303">two</span>
<span style="color:#ca60ca"> EOF</span>
<span style="font-weight:bold">elif</span> <span style="color:#644a9b;font-weight:bold">[</span> <span style="color:#006e28">-d</span> <span style="color:#0057ae">$</span><span style="color:#0057ae">file</span> <span style="color:#644a9b;font-weight:bold">]</span><span style="font-weight:bold">;</span> <span style="font-weight:bold">then</span>
<span style="color:#644a9b">cat</span> <span style="color:#ca60ca">&lt;&lt;- "EOF"</span>
<span style="color:#bf0303"> Indented text without a $dollar</span>
<span style="color:#ca60ca"> EOF</span>
<span style="font-weight:bold">fi</span>
<span style="font-weight:bold">if</span> <span style="color:#006e28">! </span><span style="font-weight:bold">{</span> <span style="color:#0095ff;font-weight:bold">cmd1</span> <span style="font-weight:bold">&amp;&amp;</span> <span style="color:#0095ff;font-weight:bold">cmd2</span> <span style="font-weight:bold">;</span> <span style="font-weight:bold">}</span><span style="font-weight:bold">;</span> <span style="font-weight:bold">then</span> <span style="color:#644a9b;font-weight:bold">echo</span> ok <span style="font-weight:bold">;</span> <span style="font-weight:bold">fi</span>
<span style="font-weight:bold">if</span> <span style="color:#006e28">! </span><span style="color:#0095ff;font-weight:bold">cmd1</span> arg<span style="font-weight:bold">;</span> <span style="font-weight:bold">then</span> <span style="color:#644a9b;font-weight:bold">echo</span> ok <span style="font-weight:bold">;</span> <span style="font-weight:bold">fi</span>
<span style="font-weight:bold">case</span> 1 <span style="font-weight:bold">in</span>
<span style="color:#ff5500">2</span><span style="font-weight:bold">)</span> <span style="color:#644a9b;font-weight:bold">echo</span> xxx<span style="font-weight:bold">;</span>
<span style="font-weight:bold">;;</span>
<span style="color:#006e28">?</span><span style="font-weight:bold">)</span> <span style="color:#0095ff;font-weight:bold">foo</span> <span style="font-weight:bold">||</span> <span style="color:#0095ff;font-weight:bold">yyy</span> <span style="font-weight:bold">;</span> <span style="color:#0095ff;font-weight:bold">foo</span> abc <span style="font-weight:bold">||</span> <span style="color:#644a9b;font-weight:bold">echo</span> abc <span style="font-weight:bold">;;</span>
<span style="color:#ff5500">1</span><span style="font-weight:bold">)</span> <span style="color:#644a9b;font-weight:bold">echo</span> yyy<span style="font-weight:bold">;</span>
<span style="font-weight:bold">esac</span>
<span style="color:#644a9b">ls</span> <span style="color:#898887">#should be outside of case 1 folding block</span>
<span style="font-weight:bold">for</span> i <span style="font-weight:bold">in</span> <span style="font-weight:bold">`</span><span style="color:#644a9b">ls</span> tests/auto/output/<span style="color:#006e28">*</span>.html<span style="font-weight:bold">`</span><span style="font-weight:bold">;</span> <span style="font-weight:bold">do</span>
<span style="color:#0057ae">refFile</span><span style="color:#ca60ca">=</span><span style="font-weight:bold">`</span><span style="color:#644a9b;font-weight:bold">echo</span> <span style="color:#0057ae">$</span><span style="color:#0057ae">i</span> <span style="font-weight:bold">|</span> <span style="color:#644a9b">sed</span> <span style="color:#0057ae">-e</span> s,build,src, <span style="font-weight:bold">|</span> <span style="color:#644a9b">sed</span> <span style="color:#0057ae">-e</span> s,output,reference, <span style="font-weight:bold">|</span> <span style="color:#644a9b">sed</span> <span style="color:#0057ae">-e</span> s,.html,.ref.html,<span style="font-weight:bold">`</span>
<span style="color:#644a9b">cp</span> <span style="color:#0057ae">-v</span> <span style="color:#0057ae">$</span><span style="color:#0057ae">i</span> <span style="color:#0057ae">$</span><span style="color:#0057ae">refFile</span>
<span style="font-weight:bold">done</span>
<span style="color:#898887">## >Settings >Configure Kate >Fonts &amp; Colors >Highlitghing Text Styles >Scripts/Bash >Option >Change colors to some distinct color</span>
<span style="color:#898887">## 1- In following line the -ucode should not be colored as option</span>
<span style="color:#0095ff;font-weight:bold">pacman</span> <span style="color:#0057ae">-Syu</span> <span style="color:#0057ae">--needed</span> intel-ucode grub
<span style="color:#0095ff;font-weight:bold">pacman</span> <span style="color:#0057ae">-syu</span> <span style="color:#0057ae">--needed</span> intel-ucode grub
<span style="color:#898887"># Braces (bug ##387915)</span>
<span style="font-weight:bold">[[</span> <span style="color:#0057ae">$</span><span style="color:#0057ae">line_name</span> <span style="color:#006e28">=~</span> <span style="color:#0057ae">\{</span><span style="color:#ca60ca">([</span><span style="color:#ff5500">0</span><span style="color:#ca60ca">-</span><span style="color:#ff5500">9</span><span style="color:#ca60ca">]</span><span style="color:#0057ae">{</span><span style="color:#b08000">1</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">}</span><span style="color:#ca60ca">)</span><span style="color:#0057ae">\}\{</span><span style="color:#ca60ca">([</span><span style="color:#ff5500">0</span><span style="color:#ca60ca">-</span><span style="color:#ff5500">9</span><span style="color:#ca60ca">]</span><span style="color:#0057ae">{</span><span style="color:#b08000">1</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">}</span><span style="color:#ca60ca">)</span><span style="color:#0057ae">\}</span><span style="color:#ca60ca">(</span><span style="color:#006e28">.*</span><span style="color:#ca60ca">)</span> <span style="font-weight:bold">]]</span>
<span style="font-weight:bold">[[</span> <span style="color:#0057ae">$</span><span style="color:#0057ae">name</span> <span style="color:#006e28">=~</span> <span style="color:#ca60ca">(</span><span style="color:#006e28">.*</span><span style="color:#ca60ca">)</span><span style="color:#ff5500">_</span><span style="color:#ca60ca">(</span><span style="color:#ff5500">S</span><span style="color:#ca60ca">[</span><span style="color:#ff5500">0</span><span style="color:#ca60ca">-</span><span style="color:#ff5500">9</span><span style="color:#ca60ca">]</span><span style="color:#0057ae">{</span><span style="color:#b08000">2</span><span style="color:#0057ae">}</span><span style="color:#ca60ca">)(</span><span style="color:#ff5500">E</span><span style="color:#ca60ca">[</span><span style="color:#ff5500">0</span><span style="color:#ca60ca">-</span><span style="color:#ff5500">9</span><span style="color:#ca60ca">]</span><span style="color:#0057ae">{</span><span style="color:#b08000">2</span><span style="color:#ca60ca">,</span><span style="color:#b08000">3</span><span style="color:#0057ae">}</span><span style="color:#ca60ca">[</span><span style="color:#ff5500">a</span><span style="color:#ca60ca">-</span><span style="color:#ff5500">z</span><span style="color:#ca60ca">]</span><span style="color:#0057ae">{</span><span style="color:#b08000">0</span><span style="color:#ca60ca">,</span><span style="color:#b08000">1</span><span style="color:#0057ae">}</span><span style="color:#ca60ca">)</span><span style="color:#ff5500">_</span><span style="color:#ca60ca">(</span><span style="color:#006e28">.*</span><span style="color:#ca60ca">)</span> <span style="font-weight:bold">]]</span>
<span style="color:#898887"># Comments in Braces (bug 450878)</span>
<span style="font-weight:bold">[[</span> <span style="color:#898887"># comment 1</span>
1 <span style="color:#006e28">==</span> 1 <span style="color:#898887"># comment 2</span>
<span style="color:#898887"># comment 3</span>
<span style="font-weight:bold">]]</span>
<span style="color:#898887"># Line continuation in Braces (bug 487978)</span>
<span style="font-weight:bold">[[</span> <span style="color:#0057ae">\</span>
x <span style="color:#0057ae">\</span>
<span style="color:#006e28">=</span> <span style="color:#0057ae">\</span>
<span style="color:#bf0303">"y"</span> <span style="color:#898887"># bla bla</span>
<span style="font-weight:bold">]]</span>
<span style="color:#644a9b;font-weight:bold">[</span> <span style="color:#0057ae">\</span>
x <span style="color:#0057ae">\</span>
<span style="color:#006e28">=</span> <span style="color:#0057ae">\</span>
<span style="color:#bf0303">"y"</span> <span style="color:#644a9b;font-weight:bold">]</span>
<span style="color:#644a9b">rm</span> /data/<span style="color:#0057ae">{hello1</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">hello2}</span>/input/<span style="color:#0057ae">{bye1</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">$</span><span style="color:#0057ae">bye2</span><span style="color:#0057ae">}</span>/si<span style="color:#0057ae">{a</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">${</span><span style="color:#0057ae">b</span><span style="color:#0057ae">}</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">c{k</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">p{e</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">a}}}</span>/<span style="color:#006e28">*</span>.non
<span style="color:#644a9b">rm</span> /data/{aa,<span style="color:#0057ae">{e</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">i}</span>t<span style="color:#0057ae">{b</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">c}</span> <span style="color:#898887"># Not closed</span>
<span style="color:#644a9b">rm</span> /data/<span style="color:#0057ae">{aa</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">{e</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">i}t{b</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">c}}</span>
<span style="color:#644a9b">rm</span> /data/<span style="color:#0057ae">{aa</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">{i}}</span>
<span style="color:#644a9b">rm</span> /data{aa{bb{cc{dd}}}}
<span style="color:#644a9b">rm</span> /data{aaa<span style="font-weight:bold">`</span><span style="color:#0095ff;font-weight:bold">aaa}aa</span><span style="font-weight:bold">`</span>aaa}a
<span style="color:#0057ae">${</span><span style="color:#0057ae">array</span><span style="color:#ca60ca">[</span><span style="color:#b08000">0</span><span style="color:#ca60ca">]:</span> -<span style="color:#b08000">7</span> <span style="color:#ca60ca">:</span> + <span style="color:#b08000">22</span> <span style="color:#0057ae">}</span> <span style="color:#0057ae">${</span><span style="color:#0057ae">array</span><span style="color:#ca60ca">[</span><span style="color:#b08000">1</span><span style="color:#ca60ca">]:</span> num <span style="color:#0057ae">}</span>
<span style="color:#0057ae">${</span><span style="color:#0057ae">parameter</span><span style="color:#ca60ca">##</span>word<span style="color:#0057ae">}</span> <span style="color:#0057ae">${</span><span style="color:#0057ae">parameter</span><span style="color:#ca60ca">%%</span>word<span style="color:#0057ae">}</span> <span style="color:#0057ae">${</span><span style="color:#0057ae">parameter</span><span style="color:#ca60ca">^^</span><span style="color:#ff5500">pattern</span><span style="color:#0057ae">}</span> <span style="color:#0057ae">${</span><span style="color:#0057ae">parameter</span><span style="color:#ca60ca">,,</span><span style="color:#ff5500">pattern</span><span style="color:#0057ae">}</span> <span style="color:#0057ae">${</span><span style="color:#0057ae">parameter</span><span style="color:#ca60ca">@</span><span style="color:#bf0303;text-decoration:underline">operator</span><span style="color:#0057ae">}</span>
<span style="color:#898887"># </span><span style="color:#ca9219;background-color:#451e1a;font-weight:bold">TODO</span><span style="color:#898887"> `</span>
<span style="color:#898887"># commands</span>
<span style="color:#0095ff;font-weight:bold">abc</span>
<span style="color:#644a9b">cp</span>
<span style="color:#644a9b;font-weight:bold">:</span>
<span style="color:#644a9b;font-weight:bold">.</span>
<span style="color:#0095ff;font-weight:bold">:#nokeyword</span>
<span style="color:#0095ff;font-weight:bold">path/cmd</span>
<span style="color:#0095ff;font-weight:bold">ec</span><span style="color:#0057ae">\</span>
<span style="color:#0095ff;font-weight:bold">ho</span>
<span style="color:#0095ff;font-weight:bold">2</span>
<span style="color:#0095ff;font-weight:bold">{ab}c</span>
<span style="color:#0057ae">{a</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">b}</span><span style="color:#0095ff;font-weight:bold">c</span>
<span style="color:#bf0303">'a'</span><span style="color:#0095ff;font-weight:bold">c</span>
<span style="color:#0057ae">$</span><span style="color:#0057ae">ab</span>
<span style="color:#0057ae">${</span><span style="color:#0057ae">ab</span><span style="color:#0057ae">}</span><span style="color:#0095ff;font-weight:bold">c</span>
<span style="color:#0095ff;font-weight:bold">\ a</span>
<span style="color:#0095ff;font-weight:bold">!a</span>
<span style="color:#0095ff;font-weight:bold">{ab}[</span>
<span style="color:#0057ae">{a</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">b}</span><span style="color:#0095ff;font-weight:bold">[</span>
<span style="color:#bf0303">'a'</span><span style="color:#0095ff;font-weight:bold">[</span>
<span style="color:#0095ff;font-weight:bold">\ [</span>
<span style="color:#0095ff;font-weight:bold">!a[</span>
<span style="color:#0095ff;font-weight:bold">a{}d</span>
<span style="color:#0095ff;font-weight:bold">a{bc}d</span>
<span style="color:#0095ff;font-weight:bold">a</span><span style="color:#0057ae">{b</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">c}</span><span style="color:#0095ff;font-weight:bold">d</span>
<span style="color:#0095ff;font-weight:bold">a</span><span style="color:#bf0303">'b'</span><span style="color:#0095ff;font-weight:bold">c</span>
<span style="color:#0095ff;font-weight:bold">a</span><span style="color:#0057ae">$</span><span style="color:#0057ae">bc</span>
<span style="color:#0095ff;font-weight:bold">a</span><span style="color:#0057ae">${</span><span style="color:#0057ae">bc</span><span style="color:#0057ae">}</span><span style="color:#0095ff;font-weight:bold">d</span>
<span style="color:#0095ff;font-weight:bold">a\ b</span>
<span style="color:#0095ff;font-weight:bold">a!b</span>
<span style="color:#0095ff;font-weight:bold">a{}[</span>
<span style="color:#0095ff;font-weight:bold">a{bc}[</span>
<span style="color:#0095ff;font-weight:bold">a</span><span style="color:#0057ae">{b</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">c}</span><span style="color:#0095ff;font-weight:bold">[</span>
<span style="color:#0095ff;font-weight:bold">a</span><span style="color:#bf0303">'b'</span><span style="color:#0095ff;font-weight:bold">[</span>
<span style="color:#0095ff;font-weight:bold">a\ [</span>
<span style="color:#0095ff;font-weight:bold">a!b[</span>
<span style="color:#898887"># commands + params</span>
<span style="color:#0095ff;font-weight:bold">shortopt</span> <span style="color:#0057ae">-ol</span> <span style="color:#0057ae">-f</span>/fd/fd <span style="color:#0057ae">-hfd</span>/fds <span style="color:#0057ae">-</span> <span style="color:#0057ae">-ol</span><span style="color:#bf0303">'a'</span><span style="color:#0057ae">b</span> <span style="color:#0057ae">-f</span><span style="color:#bf0303">'a'</span>/fd/fd <span style="color:#0057ae">-h</span><span style="color:#bf0303">'a'</span><span style="color:#0057ae">fd</span>/fds
<span style="color:#0095ff;font-weight:bold">longopt</span> <span style="color:#0057ae">--long-a</span> <span style="color:#0057ae">--long-b</span><span style="color:#ca60ca">=</span>value <span style="color:#0057ae">--file</span><span style="color:#ca60ca">=</span><span style="color:#006e28">*</span> <span style="color:#0057ae">--file</span><span style="color:#ca60ca">=</span>file<span style="color:#006e28">*</span> <span style="color:#0057ae">--file</span><span style="color:#ca60ca">=</span>dir/file
<span style="color:#0095ff;font-weight:bold">longopt</span> <span style="color:#0057ae">--long-a</span><span style="color:#bf0303">'a'</span><span style="color:#0057ae">b</span> <span style="color:#0057ae">--long</span><span style="color:#bf0303">'a'</span><span style="color:#0057ae">-b</span><span style="color:#ca60ca">=</span>value <span style="color:#0057ae">--fi</span><span style="color:#bf0303">'a'</span><span style="color:#0057ae">le</span><span style="color:#ca60ca">=</span><span style="color:#006e28">*</span>
<span style="color:#0095ff;font-weight:bold">noopt</span> 3 3d <span style="color:#0057ae">-f</span> <span style="color:#0057ae">--</span> <span style="color:#0057ae">-f</span> <span style="color:#0057ae">--xx</span> dir/file
<span style="color:#0095ff;font-weight:bold">opt</span> param#nocomment ab<span style="color:#bf0303">'a'</span>cd [[ param ]] } { ~a .a <span style="color:#898887">#comments</span>
<span style="color:#0095ff;font-weight:bold">path</span> path/file dir/ / // 3/f a@/ <span style="color:#bf0303">'a'</span>/b d/<span style="color:#bf0303">'a'</span>b a\ d/f f/f<span style="color:#0057ae">\</span>
ile
<span style="color:#0095ff;font-weight:bold">path</span> ~ ~/ ~a/ . .. ./a ../a
<span style="color:#0095ff;font-weight:bold">path</span> /path/<span style="color:#006e28">*</span> /path/f<span style="color:#006e28">*</span> /path/f@ /path/f<span style="color:#006e28">@(|)</span> {a/b} a{b}/c a/b{c} a/{b} a/{b}c
<span style="color:#0095ff;font-weight:bold">glob</span> <span style="color:#006e28">?</span> <span style="color:#006e28">*</span> <span style="color:#006e28">?</span>f <span style="color:#006e28">*</span>f f<span style="color:#006e28">*</span> f<span style="color:#006e28">?</span> <span style="color:#006e28">**</span>/ ~/<span style="color:#006e28">*</span> ~<span style="color:#006e28">*</span> /path/f<span style="color:#006e28">*</span> <span style="color:#bf0303">'a'</span><span style="color:#006e28">*</span> <span style="color:#bf0303">'a'</span>f/<span style="color:#006e28">?</span>
<span style="color:#0095ff;font-weight:bold">extglob</span> @ <span style="color:#006e28">@(*)</span> <span style="color:#006e28">@(</span>f<span style="color:#006e28">*|</span>f<span style="color:#006e28">??(</span>f<span style="color:#006e28">))</span> f<span style="color:#006e28">!(+(?(@(*(</span>f<span style="color:#006e28">)</span>f<span style="color:#006e28">)</span>f<span style="color:#006e28">)</span>f<span style="color:#006e28">)</span>f<span style="color:#006e28">)</span>f @<span style="color:#bf0303">'a'</span><span style="color:#006e28">@(|)</span> a<span style="color:#006e28">@(?)</span>
<span style="color:#0095ff;font-weight:bold">subs</span> f! f!! f!s <span style="color:#bf0303">'a'</span>!s <span style="color:#0057ae">\(</span> <span style="color:#0057ae">$</span><span style="color:#0057ae">v</span> <span style="color:#0057ae">{a</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">b}</span> {a} {a}/d {a<span style="color:#0057ae">\,</span>} <span style="color:#0057ae">{a</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">}</span> <span style="color:#0057ae">{a</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">\}</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">b}</span> ds/<span style="color:#0057ae">{a</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">b}</span>sa/s
<span style="color:#0095ff;font-weight:bold">2</span> <span style="color:#0057ae">-</span> f <span style="color:#0057ae">-f</span>
<span style="color:#0095ff;font-weight:bold">!a</span> <span style="color:#0057ae">-f</span>
<span style="color:#bf0303">'a'</span> <span style="color:#0057ae">-f</span>
<span style="color:#0057ae">$</span><span style="color:#0057ae">a</span> <span style="color:#0057ae">-f</span>
<span style="color:#006e28">! </span><span style="color:#0095ff;font-weight:bold">cmd</span>
<span style="color:#898887"># coproc command (#460301)</span>
<span style="color:#644a9b;font-weight:bold">coproc</span> <span style="color:#644a9b">ls</span> thisfiledoesntexist <span style="color:#b08000">2</span><span style="color:#ca60ca">>&amp;</span><span style="color:#b08000">1</span>
<span style="color:#644a9b;font-weight:bold">coproc</span> <span style="font-weight:bold">{</span> <span style="color:#644a9b">ls</span> thisfiledoesntexist<span style="font-weight:bold">;</span> <span style="color:#644a9b;font-weight:bold">read</span><span style="font-weight:bold">;</span> <span style="font-weight:bold">}</span> <span style="color:#b08000">2</span><span style="color:#ca60ca">>&amp;</span><span style="color:#b08000">1</span>
<span style="color:#644a9b;font-weight:bold">coproc</span> mycoproc <span style="font-weight:bold">{</span> <span style="color:#644a9b">awk</span> <span style="color:#bf0303">'{print "foo" $0;fflush()}'</span><span style="font-weight:bold">;</span> <span style="font-weight:bold">}</span> <span style="color:#ca60ca">>&amp;</span><span style="color:#b08000">3</span>
<span style="color:#898887"># redirections (prefix)</span>
<span style="color:#ca60ca">&lt;&lt;&lt;</span>s <span style="color:#644a9b">cat</span>
<span style="color:#ca60ca">&lt;&lt;&lt;</span><span style="color:#bf0303">'s'</span> <span style="color:#644a9b">cat</span>
<span style="color:#ca60ca">&lt;&lt;&lt;</span><span style="color:#bf0303">'s'</span>s <span style="color:#644a9b">cat</span>
<span style="color:#ca60ca">&lt;&lt;&lt;</span>s<span style="color:#bf0303">'s'</span>s <span style="color:#644a9b">cat</span>
<span style="color:#ca60ca">&lt;&lt;&lt;</span>s<span style="color:#0057ae">${</span><span style="color:#0057ae">s</span><span style="color:#0057ae">}</span>s <span style="color:#644a9b">cat</span>
<span style="color:#ca60ca">&lt;&lt;&lt;</span> s<span style="color:#0057ae">${</span><span style="color:#0057ae">s</span><span style="color:#0057ae">}</span>s <span style="color:#644a9b">cat</span>
<span style="color:#ca60ca">>&amp;</span><span style="color:#b08000">2</span> <span style="color:#644a9b">cat</span>
<span style="color:#ca60ca">&lt;</span>f <span style="color:#644a9b">cat</span>
<span style="color:#ca60ca">&lt;</span> f <span style="color:#644a9b">cat</span>
<span style="color:#b08000">2</span><span style="color:#ca60ca">></span>3 <span style="color:#644a9b">cat</span>
<span style="color:#b08000">2</span><span style="color:#ca60ca">>&amp;</span><span style="color:#b08000">3</span> <span style="color:#644a9b">cat</span>
<span style="color:#b08000">2</span><span style="color:#ca60ca">>&amp;</span> <span style="color:#b08000">3</span> <span style="color:#644a9b">cat</span>
<span style="color:#b08000">2</span><span style="color:#ca60ca">></span>f <span style="color:#644a9b">cat</span>
<span style="color:#ca60ca">&amp;></span>f <span style="color:#644a9b">cat</span>
<span style="color:#ca60ca">&lt;&lt;&lt;</span><span style="color:#898887"># comment</span>
<span style="color:#ca60ca">&lt;</span><span style="color:#898887"># comment</span>
<span style="color:#ca60ca">></span><span style="color:#898887"># comment</span>
<span style="color:#ca60ca">&lt;&lt;&lt;</span> <span style="color:#898887"># comment</span>
<span style="color:#ca60ca">&lt;</span> <span style="color:#898887"># comment</span>
<span style="color:#ca60ca">></span> <span style="color:#898887"># comment</span>
<span style="color:#898887"># redirections</span>
<span style="color:#644a9b">cat</span> f<span style="color:#ca60ca">></span>2
<span style="color:#644a9b">cat</span> d/f<span style="color:#ca60ca">></span>2
<span style="color:#644a9b">cat</span> d/f <span style="color:#ca60ca">></span>2
<span style="color:#644a9b">cat</span> d/f <span style="color:#ca60ca">>&amp;</span> <span style="color:#b08000">2</span>
<span style="color:#644a9b">cat</span> <span style="color:#ca60ca">></span>2 d/f
<span style="color:#644a9b">cat</span> <span style="color:#ca60ca">></span> 2
<span style="color:#644a9b">cat</span> <span style="color:#ca60ca">&lt;(</span><span style="color:#644a9b;font-weight:bold">echo</span><span style="color:#ca60ca">)</span> <span style="color:#ca60ca">&lt;(</span><span style="color:#644a9b;font-weight:bold">echo</span> a<span style="color:#ca60ca">)</span> <span style="color:#ca60ca">&lt;(</span><span style="color:#644a9b;font-weight:bold">echo</span> a/f<span style="color:#ca60ca">)</span> <span style="color:#ca60ca">&lt;(</span><span style="color:#644a9b;font-weight:bold">echo</span> <span style="color:#ca60ca">)</span> <span style="color:#ca60ca">&lt;(</span><span style="color:#644a9b;font-weight:bold">echo</span> a <span style="color:#ca60ca">)</span> <span style="color:#ca60ca">&lt;(</span><span style="color:#644a9b;font-weight:bold">echo</span> a/f <span style="color:#ca60ca">)</span>
<span style="color:#644a9b">cat</span> <span style="color:#b08000">2</span><span style="color:#ca60ca">>&amp;</span><span style="color:#b08000">1</span> <span style="color:#ca60ca">&amp;></span>f <span style="color:#ca60ca">&amp;>></span>f <span style="color:#b08000">2</span><span style="color:#ca60ca">&lt;&amp;</span><span style="color:#b08000">1</span><span style="font-weight:bold">-</span> <span style="color:#b08000">2</span><span style="color:#ca60ca">&lt;></span>f <span style="color:#b08000">2</span><span style="color:#ca60ca">&lt;&lt;heredoc</span>
<span style="color:#bf0303">bla bla</span>
<span style="color:#ca60ca">heredoc</span>
<span style="color:#ca60ca">&lt;&lt;-'h'</span> <span style="color:#644a9b">cat</span>
<span style="color:#bf0303">bla</span>
<span style="color:#ca60ca">h</span>
<span style="color:#ca60ca">&lt;&lt;"'"</span> <span style="color:#644a9b">cat</span>
<span style="color:#bf0303">bla</span>
<span style="color:#ca60ca">'</span>
<span style="color:#644a9b">cat</span> <span style="color:#ca60ca">&lt;&lt;heredoc</span>
<span style="color:#bf0303">bla bla</span>
<span style="color:#ca60ca">heredoc</span>
<span style="color:#644a9b">cat</span> <span style="color:#ca60ca">&lt;&lt;heredoc</span> <span style="color:#0057ae">-a</span>
<span style="color:#bf0303">bla bla</span>
<span style="color:#ca60ca">heredoc</span>
<span style="color:#0057ae">r</span><span style="color:#ca60ca">=</span><span style="color:#0057ae">$(</span><span style="color:#0095ff;font-weight:bold">xxx</span> <span style="color:#0057ae">$</span><span style="color:#0057ae">@</span> <span style="color:#b08000">2</span><span style="color:#ca60ca">>&amp;</span><span style="color:#b08000">1</span><span style="color:#0057ae">)</span>
<span style="color:#644a9b">cat</span> <span style="color:#ca60ca">&lt;&lt;&lt;</span><span style="color:#898887"># comment</span>
<span style="color:#644a9b">cat</span> <span style="color:#ca60ca">&lt;</span><span style="color:#898887"># comment</span>
<span style="color:#644a9b">cat</span> <span style="color:#ca60ca">></span><span style="color:#898887"># comment</span>
<span style="color:#644a9b">cat</span> <span style="color:#ca60ca">&lt;&lt;&lt;</span> <span style="color:#898887"># comment</span>
<span style="color:#644a9b">cat</span> <span style="color:#ca60ca">&lt;</span> <span style="color:#898887"># comment</span>
<span style="color:#644a9b">cat</span> <span style="color:#ca60ca">></span> <span style="color:#898887"># comment</span>
<span style="color:#898887"># branches</span>
<span style="color:#644a9b">cat</span> a<span style="font-weight:bold">|</span><span style="color:#644a9b">cat</span>
<span style="color:#644a9b">cat</span> a<span style="font-weight:bold">&amp;</span><span style="color:#644a9b">cat</span>
<span style="color:#644a9b">cat</span> a<span style="font-weight:bold">||</span><span style="color:#644a9b">cat</span>
<span style="color:#644a9b">cat</span> a<span style="font-weight:bold">&amp;&amp;</span><span style="color:#644a9b">cat</span>
<span style="color:#644a9b">cat</span> a<span style="font-weight:bold">;</span><span style="color:#644a9b">cat</span>
<span style="color:#644a9b">cat</span> a <span style="font-weight:bold">|</span> <span style="color:#644a9b">cat</span>
<span style="color:#644a9b">cat</span> a <span style="font-weight:bold">&amp;</span> <span style="color:#644a9b">cat</span>
<span style="color:#644a9b">cat</span> a <span style="font-weight:bold">||</span> <span style="color:#644a9b">cat</span>
<span style="color:#644a9b">cat</span> a <span style="font-weight:bold">&amp;&amp;</span> <span style="color:#644a9b">cat</span>
<span style="color:#644a9b">cat</span> a <span style="font-weight:bold">;</span> <span style="color:#644a9b">cat</span>
<span style="color:#644a9b">cat</span> a<span style="color:#bf0303">'a'</span><span style="font-weight:bold">;</span><span style="color:#644a9b">cat</span>
<span style="color:#898887"># substitutions</span>
<span style="color:#644a9b;font-weight:bold">echo</span> <span style="color:#bf0303">''</span> <span style="color:#bf0303">'a'</span> <span style="color:#bf0303">'\'</span> <span style="color:#bf0303">""</span> <span style="color:#bf0303">"a"</span> <span style="color:#bf0303">"</span><span style="color:#0057ae">\\</span><span style="color:#bf0303">"</span> <span style="color:#bf0303">"</span><span style="color:#0057ae">$</span><span style="color:#0057ae">a</span><span style="color:#bf0303">"</span> <span style="color:#bf0303">"a""a"</span><span style="color:#bf0303">'a''a'</span> a<span style="color:#bf0303">'b'</span>c a<span style="color:#bf0303">"b"</span>c a<span style="color:#bf0303">$'</span><span style="color:#0057ae">\n</span><span style="color:#bf0303">'</span>c
<span style="color:#644a9b;font-weight:bold">echo</span> a!bc a{a}b a<span style="color:#0057ae">{b</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">c}</span>d a<span style="color:#0057ae">{b</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">{d</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">e}}</span>d a<span style="color:#0057ae">\ </span>b
<span style="color:#644a9b;font-weight:bold">echo</span> a<span style="color:#0057ae">$</span><span style="color:#0057ae">bc</span> a<span style="color:#0057ae">$</span><span style="color:#0057ae">b</span>/c a<span style="color:#0057ae">${</span><span style="color:#0057ae">b</span><span style="color:#0057ae">}</span>c a<span style="color:#0057ae">$((</span><span style="color:#0057ae">b</span><span style="color:#ca60ca">-</span><span style="color:#b08000">3</span><span style="color:#0057ae">))</span>c a<span style="color:#0057ae">$(</span><span style="color:#0095ff;font-weight:bold">b</span><span style="color:#0057ae">)</span>c a<span style="color:#0057ae">$(</span><span style="color:#0095ff;font-weight:bold">a</span> b c<span style="color:#0057ae">)</span>c
<span style="color:#644a9b;font-weight:bold">echo</span> <span style="color:#0057ae">${</span><span style="color:#0057ae">a</span><span style="color:#ca60ca">[*]</span><span style="color:#0057ae">}</span> <span style="color:#0057ae">${</span><span style="color:#0057ae">a</span><span style="color:#ca60ca">[@]</span><span style="color:#0057ae">}</span> <span style="color:#0057ae">${</span><span style="color:#0057ae">a</span><span style="color:#ca60ca">[</span><span style="color:#0057ae">${</span><span style="color:#0057ae">b</span><span style="color:#0057ae">}</span><span style="color:#ca60ca">]</span><span style="color:#0057ae">}</span> <span style="color:#0057ae">${</span><span style="color:#0057ae">a</span><span style="color:#ca60ca">:-</span>x<span style="color:#0057ae">$</span><span style="color:#0057ae">z</span><span style="color:#0057ae">}</span> <span style="color:#0057ae">${</span><span style="color:#0057ae">a</span><span style="color:#ca60ca">-</span>x<span style="color:#0057ae">}</span> <span style="color:#0057ae">${</span><span style="color:#0057ae">a</span><span style="color:#ca60ca">/</span><span style="color:#ff5500">g</span><span style="color:#0057ae">}</span> <span style="color:#0057ae">${</span><span style="color:#0057ae">a</span><span style="color:#ca60ca">//</span><span style="color:#ff5500">f</span><span style="color:#ca60ca">/</span>f<span style="color:#0057ae">}</span> <span style="color:#0057ae">${</span><span style="color:#0057ae">a</span><span style="color:#ca60ca">//</span><span style="color:#ff5500">f</span><span style="color:#006e28">*</span><span style="color:#ca60ca">/</span>f<span style="color:#006e28">*</span><span style="color:#0057ae">}</span> <span style="color:#0057ae">${</span><span style="color:#0057ae">x</span><span style="color:#ca60ca">/</span><span style="color:#ff5500">pat</span><span style="color:#ca60ca">/</span>a<span style="color:#0057ae">&amp;</span>b<span style="color:#0057ae">}</span>
<span style="color:#644a9b;font-weight:bold">echo</span> <span style="color:#0057ae">${</span><span style="color:#0057ae">a</span><span style="color:#ca60ca">^^</span><span style="color:#ff5500">l</span><span style="color:#006e28">*</span><span style="color:#0057ae">}</span> <span style="color:#0057ae">${</span><span style="color:#0057ae">a</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">}</span> <span style="color:#0057ae">${</span><span style="color:#ca60ca">!</span><span style="color:#0057ae">a</span><span style="color:#0057ae">}</span> <span style="color:#0057ae">${</span><span style="color:#ca60ca">#</span><span style="color:#0057ae">a</span><span style="color:#ca60ca">[</span><span style="color:#b08000">1</span><span style="color:#ca60ca">]</span><span style="color:#0057ae">}</span> <span style="color:#0057ae">${</span><span style="color:#0057ae">a</span><span style="color:#ca60ca">:</span><span style="color:#b08000">1</span><span style="color:#ca60ca">:</span><span style="color:#0057ae">$</span><span style="color:#0057ae">b</span><span style="color:#0057ae">}</span> <span style="color:#0057ae">$((</span><span style="color:#ca60ca">++</span><span style="color:#0057ae">i</span><span style="font-weight:bold">,</span><span style="color:#0057ae">i</span><span style="color:#ca60ca">--</span><span style="color:#0057ae">))</span>
<span style="color:#644a9b;font-weight:bold">echo</span> <span style="color:#bf0303">"</span><span style="color:#0057ae">${</span><span style="color:#0057ae">var</span><span style="color:#ca60ca">#</span>lo<span style="color:#006e28">+(</span>r<span style="color:#006e28">)</span>em<span style="color:#0057ae">}</span><span style="color:#bf0303">"</span> x <span style="color:#bf0303">"</span><span style="color:#0057ae">${</span><span style="color:#0057ae">var</span><span style="color:#ca60ca">#</span><span style="color:#006e28">+(</span>r<span style="color:#006e28">)</span>em<span style="color:#0057ae">}</span><span style="color:#bf0303">"</span> x
<span style="color:#644a9b;font-weight:bold">echo</span> <span style="color:#bf0303">"</span><span style="color:#0057ae">${</span><span style="color:#0057ae">var</span><span style="color:#ca60ca">#</span>refs/heads<span style="color:#0057ae">}</span><span style="color:#bf0303">"</span> x <span style="color:#bf0303">"</span><span style="color:#0057ae">${</span><span style="color:#0057ae">var</span><span style="color:#ca60ca">#</span>refs<span style="color:#0057ae">}</span><span style="color:#bf0303">"</span> x
<span style="color:#644a9b;font-weight:bold">[</span> a <span style="color:#644a9b;font-weight:bold">]</span>
<span style="color:#644a9b;font-weight:bold">[</span> <span style="color:#006e28">-f</span> f<span style="color:#bf0303">'f'</span>f <span style="color:#644a9b;font-weight:bold">]</span>
<span style="color:#644a9b;font-weight:bold">[</span> <span style="color:#006e28">-f</span> f]<span style="color:#bf0303">'f'</span>f] <span style="color:#644a9b;font-weight:bold">]</span>
<span style="color:#644a9b;font-weight:bold">[</span> <span style="color:#006e28">-t</span> 13 <span style="color:#644a9b;font-weight:bold">]</span>
<span style="color:#644a9b;font-weight:bold">[</span> <span style="color:#006e28">-t</span> 13] <span style="color:#644a9b;font-weight:bold">]</span>
<span style="color:#644a9b;font-weight:bold">[</span> <span style="color:#006e28">-t</span> 13] <span style="color:#644a9b;font-weight:bold">]</span>
<span style="color:#644a9b;font-weight:bold">[</span> <span style="color:#006e28">-v</span> abc <span style="color:#644a9b;font-weight:bold">]</span>
<span style="color:#644a9b;font-weight:bold">[</span> <span style="color:#006e28">-z</span> abc <span style="color:#644a9b;font-weight:bold">]</span>
<span style="color:#644a9b;font-weight:bold">[</span> abc <span style="color:#006e28">-ef</span> abc <span style="color:#644a9b;font-weight:bold">]</span>
<span style="color:#644a9b;font-weight:bold">[</span> abc <span style="color:#006e28">-ef</span> abc <span style="color:#644a9b;font-weight:bold">]</span>
<span style="color:#644a9b;font-weight:bold">[</span> abc-ef <span style="color:#006e28">-ef</span> abc-ef <span style="color:#644a9b;font-weight:bold">]</span>
<span style="color:#644a9b;font-weight:bold">[</span> abc <span style="color:#006e28">==</span> abc <span style="color:#644a9b;font-weight:bold">]</span>
<span style="color:#644a9b;font-weight:bold">[</span> abc <span style="color:#bf0303;text-decoration:underline">&lt;</span> abc <span style="color:#644a9b;font-weight:bold">]</span>
<span style="color:#644a9b;font-weight:bold">[</span> abc <span style="color:#006e28">-eq</span> abc <span style="color:#644a9b;font-weight:bold">]</span>
<span style="font-weight:bold">[[</span> abc <span style="color:#006e28">-eq</span> abc <span style="font-weight:bold">]]</span>
<span style="color:#644a9b;font-weight:bold">[</span> 1+2 <span style="color:#006e28">-eq</span> 1+2 <span style="color:#644a9b;font-weight:bold">]</span>
<span style="font-weight:bold">[[</span> 1+2 <span style="color:#006e28">-eq</span> 1+2 <span style="font-weight:bold">]]</span>
<span style="color:#644a9b;font-weight:bold">[</span> a <span style="color:#006e28">=</span> b <span style="color:#bf0303;text-decoration:underline">c</span> <span style="color:#0095ff;font-weight:bold">]</span>
<span style="font-weight:bold">[[</span> a <span style="color:#006e28">=</span> b <span style="color:#bf0303;text-decoration:underline">c</span> <span style="color:#0095ff;font-weight:bold">]]</span>
<span style="color:#644a9b;font-weight:bold">[</span> <span style="color:#006e28">-z</span> 1 <span style="color:#006e28">-a</span> 1 <span style="color:#006e28">-eq</span> 1 <span style="color:#644a9b;font-weight:bold">]</span>
<span style="color:#644a9b;font-weight:bold">[</span> 2 <span style="color:#006e28">-eq</span> 1 <span style="color:#006e28">-o</span> 1 <span style="color:#006e28">-eq</span> 1 <span style="color:#644a9b;font-weight:bold">]</span>
<span style="font-weight:bold">[[</span> x <span style="color:#006e28">=~</span> <span style="color:#ff5500">a</span><span style="color:#ca60ca">(</span><span style="color:#ff5500">b c</span><span style="color:#006e28">|</span><span style="color:#ca60ca">$)</span><span style="color:#bf0303">' '</span><span style="color:#0057ae">{</span><span style="color:#b08000">1</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">}</span><span style="color:#ca60ca">[</span><span style="color:#ff5500">a</span><span style="color:#ca60ca">[.</span><span style="color:#0057ae">digit</span><span style="color:#ca60ca">.]</span><span style="color:#ca60ca">]</span> <span style="font-weight:bold">]]</span>
<span style="font-weight:bold">[[</span> x <span style="color:#006e28">=~</span> <span style="color:#ca60ca">[</span> <span style="color:#bf0303;text-decoration:underline">] </span><span style="color:#0095ff;font-weight:bold">]]</span>
<span style="font-weight:bold">[[</span> x <span style="color:#006e28">=~</span> <span style="color:#ca60ca">([</span><span style="color:#ff5500"> </span><span style="color:#ca60ca">])</span> <span style="font-weight:bold">]]</span>
<span style="font-weight:bold">[[</span> x <span style="color:#006e28">=~</span> <span style="color:#ca60ca">[</span> <span style="font-weight:bold">]]</span>
<span style="font-weight:bold">[[</span> x <span style="color:#006e28">=~</span> <span style="color:#ca60ca">([)</span> <span style="font-weight:bold">]]</span>
<span style="font-weight:bold">[[</span> <span style="color:#ca60ca">(</span>a <span style="color:#006e28">=~</span> <span style="color:#ff5500">a</span><span style="color:#ca60ca">)</span> <span style="font-weight:bold">]]</span>
<span style="font-weight:bold">[[</span> a <span style="color:#006e28">=~</span> <span style="color:#ff5500">a</span> <span style="font-weight:bold">||</span> a <span style="color:#006e28">-eq</span> 2 <span style="font-weight:bold">]]</span>
<span style="font-weight:bold">[[</span> <span style="color:#ca60ca">(</span>a <span style="color:#006e28">=~</span> <span style="color:#ff5500">a</span><span style="color:#ca60ca">)</span> <span style="font-weight:bold">||</span> a <span style="color:#006e28">-eq</span> 2 <span style="font-weight:bold">]]</span>
<span style="font-weight:bold">[[</span> <span style="color:#ca60ca">(</span>0 <span style="color:#006e28">-le</span> <span style="color:#0057ae">$</span><span style="color:#0057ae">b</span><span style="color:#ca60ca">)</span> <span style="font-weight:bold">]]</span>
<span style="font-weight:bold">[[</span> <span style="color:#ca60ca">(</span> 0 <span style="color:#006e28">-le</span> <span style="color:#0057ae">$</span><span style="color:#0057ae">b</span> <span style="color:#ca60ca">)</span> <span style="font-weight:bold">]]</span>
<span style="font-weight:bold">[[</span> <span style="color:#ca60ca">(</span> 0 <span style="color:#006e28">-le</span> <span style="color:#0057ae">$</span><span style="color:#0057ae">b</span> <span style="font-weight:bold">||</span> <span style="color:#0057ae">$</span><span style="color:#0057ae">b</span> <span style="color:#006e28">-le</span> 100 <span style="color:#ca60ca">)</span> <span style="font-weight:bold">]]</span>
<span style="font-weight:bold">[[</span> a<span style="color:#006e28">&lt;</span>b <span style="font-weight:bold">]]</span>
<span style="font-weight:bold">[[</span> a <span style="color:#006e28">&lt;</span>b <span style="font-weight:bold">]]</span>
<span style="font-weight:bold">[[</span> a<span style="color:#006e28">&lt;</span> b <span style="font-weight:bold">]]</span>
<span style="font-weight:bold">[[</span> a <span style="color:#006e28">&lt;</span> b <span style="font-weight:bold">]]</span>
<span style="font-weight:bold">[[</span><span style="color:#ca60ca">(</span><span style="color:#006e28">!</span> <span style="color:#006e28">-d</span> .<span style="color:#ca60ca">)</span><span style="font-weight:bold">]]</span>
<span style="font-weight:bold">[[</span> <span style="color:#006e28">!</span> <span style="color:#006e28">-d</span> . <span style="font-weight:bold">]]</span>
<span style="font-weight:bold">[[</span> <span style="color:#006e28">!</span><span style="color:#ca60ca">(</span><span style="color:#006e28">-d</span> .<span style="color:#ca60ca">)</span> <span style="font-weight:bold">]]</span>
<span style="font-weight:bold">[[</span> <span style="color:#006e28">-f</span> a <span style="font-weight:bold">||</span> <span style="color:#006e28">-f</span> b <span style="font-weight:bold">]]</span>
<span style="font-weight:bold">[[</span> <span style="color:#006e28">-f</span> a<span style="font-weight:bold">||</span><span style="color:#006e28">-f</span> b <span style="font-weight:bold">]]</span>
<span style="font-weight:bold">[[</span> <span style="color:#006e28">!</span> <span style="color:#ca60ca">(</span>a <span style="color:#006e28">-eq</span> b<span style="color:#ca60ca">)</span> <span style="font-weight:bold">]]</span>
<span style="color:#644a9b;font-weight:bold">[</span> <span style="color:#006e28">-d</span> <span style="font-weight:bold">`</span><span style="color:#644a9b;font-weight:bold">echo</span> .<span style="font-weight:bold">`</span>] <span style="color:#644a9b;font-weight:bold">]</span>
<span style="font-weight:bold">[[</span> <span style="color:#006e28">-d</span> <span style="font-weight:bold">`</span><span style="color:#644a9b;font-weight:bold">echo</span> .<span style="font-weight:bold">`</span>]] <span style="font-weight:bold">]]</span>
<span style="font-weight:bold">[[</span> a <span style="color:#006e28">!=</span> b <span style="font-weight:bold">&amp;&amp;</span> <span style="color:#0057ae">${</span><span style="color:#0057ae">a</span><span style="color:#0057ae">}</span>a <span style="color:#006e28">=</span> b<span style="color:#0057ae">${</span><span style="color:#0057ae">b</span><span style="color:#0057ae">}</span> <span style="font-weight:bold">]]</span>
<span style="font-weight:bold">[[</span>
1 <span style="color:#006e28">-eq</span> 2
<span style="font-weight:bold">]]</span>
<span style="font-weight:bold">[[</span> -<span style="font-weight:bold">&amp;&amp;</span>- <span style="font-weight:bold">]]</span>
<span style="font-weight:bold">[[</span> <span style="font-weight:bold">]]</span>
<span style="font-weight:bold">[[</span> <span style="color:#006e28">-f</span> <span style="font-weight:bold">]]</span>
<span style="font-weight:bold">[[</span> <span style="color:#006e28">-f</span> [0-9a] <span style="font-weight:bold">]]</span>
<span style="font-weight:bold">[[</span> ?*[0-9] <span style="color:#006e28">=</span> <span style="color:#006e28">[^</span><span style="color:#ff5500">0</span><span style="color:#006e28">-</span><span style="color:#ff5500">9</span><span style="color:#006e28">]</span> <span style="font-weight:bold">]]</span>
<span style="font-weight:bold">[[</span> -f <span style="color:#006e28">=</span> <span style="color:#006e28">?*[</span><span style="color:#ff5500">0</span><span style="color:#006e28">-</span><span style="color:#ff5500">9</span><span style="color:#006e28">]</span> <span style="font-weight:bold">]]</span>
<span style="font-weight:bold">[[</span> ?*[0-9] <span style="color:#006e28">=</span> <span style="color:#006e28">?*[</span><span style="color:#ff5500">0</span><span style="color:#006e28">-</span><span style="color:#ff5500">9</span><span style="color:#006e28">]</span> <span style="font-weight:bold">]]</span>
<span style="font-weight:bold">[[</span> a/sa[s <span style="color:#006e28">=</span> dsad<span style="color:#006e28">?*[</span><span style="color:#ff5500">0</span><span style="color:#006e28">-</span><span style="color:#ff5500">9</span><span style="color:#006e28">]</span>dsa<span style="color:#0057ae">$</span><span style="color:#0057ae">ds</span> <span style="font-weight:bold">]]</span>
<span style="font-weight:bold">[[</span> a/sa[s <span style="color:#006e28">=</span> dsad<span style="color:#006e28">?*[</span><span style="color:#ff5500">0</span><span style="color:#006e28">-</span><span style="color:#ff5500">9</span><span style="color:#006e28">]</span>ds/a<span style="color:#0057ae">$</span><span style="color:#0057ae">ds</span> <span style="font-weight:bold">]]</span>
<span style="font-weight:bold">[[</span> a <span style="color:#006e28">=~</span> <span style="color:#ca60ca">[</span><span style="color:#ff5500">12</span><span style="color:#ca60ca">]</span><span style="color:#ff5500">a</span><span style="color:#ca60ca">([</span><span style="color:#ff5500">!d</span><span style="color:#ca60ca">]</span><span style="color:#ff5500">a</span><span style="color:#006e28">?</span><span style="color:#ff5500">s</span><span style="color:#ca60ca">[</span><span style="color:#ff5500">x</span><span style="color:#ca60ca">[:</span><span style="color:#0057ae">alnum</span><span style="color:#ca60ca">:]</span><span style="color:#ca60ca">]</span><span style="color:#006e28">|</span><span style="color:#ff5500">d</span><span style="color:#006e28">?</span><span style="color:#ca60ca">)</span><span style="color:#ff5500">p</span> <span style="font-weight:bold">]]</span>
<span style="font-weight:bold">[[</span> <span style="color:#898887">#comm1</span>
<span style="color:#898887">#comm2</span>
p[1] <span style="color:#006e28">==</span> p<span style="color:#006e28">[</span><span style="color:#ff5500">2</span><span style="color:#006e28">]</span>
<span style="color:#898887">#comm3</span>
<span style="color:#898887">#comm4</span>
<span style="font-weight:bold">]]</span>
<span style="font-weight:bold">[[</span> <span style="color:#898887">#comm1</span>
<span style="color:#898887">#comm2</span>
<span style="color:#006e28">-f</span> p[2]
<span style="color:#898887">#comm3</span>
<span style="color:#898887">#comm4</span>
<span style="font-weight:bold">]]</span>
<span style="font-weight:bold">((</span><span style="color:#b08000">3</span><span style="color:#ca60ca">+</span><span style="color:#b08000">1</span><span style="color:#ca60ca">+</span><span style="color:#0057ae">a</span><span style="color:#ca60ca">+</span><span style="color:#0057ae">$</span><span style="color:#0057ae">c</span><span style="color:#ca60ca">*</span>(<span style="color:#0057ae">x</span>) <span style="color:#ca60ca">&amp;</span> <span style="color:#b08000">0x43422fd</span><span style="color:#ca60ca">+</span><span style="color:#b08000">03</span><span style="color:#ca60ca">-</span><span style="color:#b08000">0</span><span style="color:#bf0303;text-decoration:underline">85</span><span style="color:#ca60ca">/</span><span style="color:#0057ae">23#</span><span style="color:#b08000">D9a@_</span><span style="color:#ca60ca">^</span><span style="color:#b08000">8</span><span style="font-weight:bold">))</span>
<span style="font-weight:bold">((</span><span style="color:#b08000">1</span><span style="color:#ca60ca">/</span>(<span style="color:#b08000">2</span><span style="color:#ca60ca">-</span>(<span style="color:#0057ae">a</span><span style="color:#ca60ca">-</span><span style="color:#b08000">4</span>))<span style="font-weight:bold">))</span>
<span style="color:#898887"># they are not arithmetic evaluations...</span>
<span style="font-weight:bold">((</span><span style="color:#0095ff;font-weight:bold">cmd</span> <span style="font-weight:bold">&amp;&amp;</span> <span style="color:#0095ff;font-weight:bold">cmd</span><span style="font-weight:bold">)</span> <span style="font-weight:bold">||</span> <span style="color:#0095ff;font-weight:bold">cmd</span><span style="font-weight:bold">)</span>
<span style="color:#0057ae">$(</span><span style="font-weight:bold">(</span><span style="color:#0095ff;font-weight:bold">cmd</span> <span style="font-weight:bold">&amp;&amp;</span> <span style="color:#0095ff;font-weight:bold">cmd</span><span style="font-weight:bold">)</span> <span style="font-weight:bold">||</span> <span style="color:#0095ff;font-weight:bold">cmd</span><span style="color:#0057ae">)</span>
<span style="font-weight:bold">((</span><span style="color:#0057ae">cmd</span> <span style="font-weight:bold">&amp;&amp;</span>
<span style="color:#0057ae">cmd</span><span style="font-weight:bold">)</span> <span style="font-weight:bold">||</span> <span style="color:#0095ff;font-weight:bold">cmd</span><span style="font-weight:bold">)</span>
<span style="color:#0057ae">$((</span><span style="color:#0057ae">cmd</span> <span style="font-weight:bold">&amp;&amp;</span>
<span style="color:#0057ae">cmd</span><span style="color:#0057ae">)</span> <span style="font-weight:bold">||</span> <span style="color:#0095ff;font-weight:bold">cmd</span><span style="color:#0057ae">)</span>
<span style="font-weight:bold">{</span> <span style="color:#644a9b;font-weight:bold">echo</span>
<span style="color:#644a9b;font-weight:bold">echo</span>
<span style="font-weight:bold">}</span>
<span style="font-weight:bold">{</span> <span style="color:#644a9b;font-weight:bold">echo</span> <span style="font-weight:bold">;</span> <span style="font-weight:bold">}</span>
<span style="font-weight:bold">(</span><span style="color:#644a9b;font-weight:bold">echo</span> <span style="font-weight:bold">;</span> <span style="color:#644a9b;font-weight:bold">echo</span><span style="font-weight:bold">)</span>
<span style="font-weight:bold">(</span><span style="color:#644a9b;font-weight:bold">echo</span>
<span style="color:#644a9b;font-weight:bold">echo</span><span style="font-weight:bold">)</span>
<span style="font-weight:bold">(</span><span style="color:#644a9b;font-weight:bold">echo</span> a<span style="font-weight:bold">)</span>
<span style="font-weight:bold">({</span> <span style="color:#644a9b;font-weight:bold">echo</span> plop<span style="font-weight:bold">;</span><span style="font-weight:bold">})</span>
<span style="color:#644a9b;font-weight:bold">[</span> a <span style="color:#006e28">-eq</span> 2 <span style="color:#644a9b;font-weight:bold">]</span> <span style="font-weight:bold">||</span> <span style="color:#644a9b;font-weight:bold">[</span> a <span style="color:#006e28">-eq</span> 2] <span style="color:#644a9b;font-weight:bold">]</span> <span style="font-weight:bold">&amp;&amp;</span> <span style="font-weight:bold">[[</span> a <span style="color:#006e28">-eq</span> 2 <span style="font-weight:bold">]]</span> <span style="font-weight:bold">||</span> <span style="font-weight:bold">[[</span> a <span style="color:#006e28">!=</span> b <span style="font-weight:bold">]]</span><span style="font-weight:bold">;</span>
<span style="color:#644a9b;font-weight:bold">[</span> a <span style="color:#006e28">-eq</span> 2 <span style="color:#644a9b;font-weight:bold">]</span><span style="font-weight:bold">||</span><span style="color:#644a9b;font-weight:bold">[</span> a <span style="color:#006e28">-eq</span> 2] <span style="color:#644a9b;font-weight:bold">]</span><span style="font-weight:bold">&amp;&amp;</span><span style="font-weight:bold">[[</span> a <span style="color:#006e28">-eq</span> 2 <span style="font-weight:bold">]]</span><span style="font-weight:bold">||</span><span style="font-weight:bold">[[</span> a <span style="color:#006e28">!=</span> b <span style="font-weight:bold">]]</span><span style="font-weight:bold">;</span>
<span style="color:#644a9b;font-weight:bold">test</span> a <span style="color:#0057ae">-eq</span> b
<span style="color:#898887"># functions</span>
<span style="color:#644a9b">a()</span> <span style="font-weight:bold">{</span> <span style="color:#644a9b;font-weight:bold">echo</span> x<span style="font-weight:bold">;</span> <span style="font-weight:bold">}</span>
<span style="color:#644a9b">a ()</span> <span style="font-weight:bold">{</span> <span style="color:#644a9b;font-weight:bold">echo</span> x<span style="font-weight:bold">;</span> <span style="font-weight:bold">}</span>
<span style="font-weight:bold">function</span><span style="color:#644a9b"> f</span> <span style="font-weight:bold">{</span> <span style="color:#644a9b;font-weight:bold">echo</span> x<span style="font-weight:bold">;</span> <span style="font-weight:bold">}</span>
<span style="color:#644a9b">kde.org()</span> <span style="font-weight:bold">{</span> <span style="color:#644a9b;font-weight:bold">echo</span> x<span style="font-weight:bold">;</span> <span style="font-weight:bold">}</span>
<span style="color:#644a9b">--func()</span> <span style="font-weight:bold">{</span> <span style="color:#644a9b;font-weight:bold">echo</span> x<span style="font-weight:bold">;</span> <span style="font-weight:bold">}</span>
<span style="color:#898887"># variables</span>
<span style="color:#0057ae">a</span><span style="color:#ca60ca">=</span><span style="color:#0057ae">(</span>a b c<span style="color:#0057ae">)</span>
<span style="color:#0057ae">a</span><span style="color:#ca60ca">=</span><span style="color:#bf0303">'a'</span>
<span style="color:#0057ae">a</span><span style="color:#ca60ca">+=</span>b
<span style="color:#0057ae">a</span><span style="color:#ca60ca">[</span><span style="color:#b08000">1</span><span style="color:#ca60ca">]</span><span style="color:#ca60ca">=</span><span style="color:#bf0303">'a'</span>
<span style="color:#0057ae">a</span><span style="color:#ca60ca">[</span><span style="color:#0057ae">$</span><span style="color:#0057ae">i</span><span style="color:#ca60ca">]</span><span style="color:#ca60ca">=</span><span style="color:#bf0303">'x'</span>
<span style="color:#0057ae">a</span><span style="color:#ca60ca">[</span><span style="color:#0057ae">$((</span>
<span style="color:#b08000">2</span><span style="color:#ca60ca">+</span><span style="color:#b08000">4</span>
<span style="color:#0057ae">))</span><span style="color:#ca60ca">]</span><span style="color:#ca60ca">=</span><span style="color:#bf0303">'x'</span>
<span style="color:#0057ae">a</span><span style="color:#ca60ca">=</span><span style="color:#0057ae">(</span><span style="color:#ca60ca">[</span>a<span style="color:#ca60ca">]</span><span style="color:#0057ae">=</span>2 <span style="font-weight:bold">`</span><span style="color:#644a9b;font-weight:bold">echo</span><span style="font-weight:bold">`</span> -s <span style="color:#bf0303;text-decoration:underline">></span> <span style="color:#bf0303">'ds'</span><span style="color:#0057ae">)</span>
<span style="color:#0057ae">a</span><span style="color:#ca60ca">=</span><span style="color:#0057ae">(</span><span style="color:#898887">#comment</span>
value#nocomment <span style="color:#898887">#comment)</span>
<span style="color:#0057ae">)</span>
<span style="color:#0057ae">a</span><span style="color:#ca60ca">=</span>a <span style="color:#644a9b">cat</span>
<span style="color:#0057ae">a</span><span style="color:#ca60ca">=</span><span style="font-weight:bold">`</span><span style="color:#644a9b">ls</span><span style="font-weight:bold">`</span> <span style="color:#644a9b">cat</span>
<span style="color:#898887"># errors</span>
<span style="color:#0095ff;font-weight:bold">a</span> a<span style="color:#bf0303;text-decoration:underline">(</span><span style="color:#0095ff;font-weight:bold">s</span><span style="font-weight:bold">)</span> <span style="color:#0095ff;font-weight:bold">a</span>
<span style="color:#898887"># control structure</span>
<span style="font-weight:bold">for</span> name <span style="font-weight:bold">in</span> a b c <span style="color:#0057ae">{d</span><span style="color:#ca60ca">,</span><span style="color:#0057ae">e}</span> <span style="font-weight:bold">;</span> <span style="font-weight:bold">do</span> <span style="color:#644a9b;font-weight:bold">echo</span> <span style="font-weight:bold">;</span> <span style="font-weight:bold">done</span>
<span style="font-weight:bold">for</span> name<span style="font-weight:bold">;</span> <span style="font-weight:bold">do</span> <span style="color:#644a9b;font-weight:bold">echo</span> <span style="font-weight:bold">;</span> <span style="font-weight:bold">done</span>
<span style="font-weight:bold">for</span> name <span style="font-weight:bold">do</span> <span style="color:#644a9b;font-weight:bold">echo</span> <span style="font-weight:bold">;</span> <span style="font-weight:bold">done</span>
<span style="font-weight:bold">for</span> <span style="font-weight:bold">((</span><span style="color:#0057ae">i</span><span style="color:#ca60ca">=</span><span style="color:#b08000">0</span><span style="font-weight:bold">;</span><span style="color:#0057ae">i</span><span style="color:#ca60ca">&lt;</span><span style="color:#b08000">5</span><span style="font-weight:bold">;</span><span style="color:#ca60ca">++</span><span style="color:#0057ae">i</span><span style="font-weight:bold">))</span> <span style="font-weight:bold">;</span> <span style="font-weight:bold">do</span> <span style="color:#644a9b;font-weight:bold">echo</span> <span style="color:#0057ae">$</span><span style="color:#0057ae">i</span> <span style="font-weight:bold">;</span> <span style="font-weight:bold">done</span>
<span style="font-weight:bold">select</span> name <span style="font-weight:bold">in</span> a <span style="font-weight:bold">;</span> <span style="font-weight:bold">do</span> <span style="color:#644a9b;font-weight:bold">echo</span> <span style="font-weight:bold">;</span> <span style="font-weight:bold">done</span>
<span style="font-weight:bold">select</span> name<span style="font-weight:bold">;</span> <span style="font-weight:bold">do</span> <span style="color:#644a9b;font-weight:bold">echo</span> <span style="font-weight:bold">;</span> <span style="font-weight:bold">done</span>
<span style="font-weight:bold">if</span> <span style="color:#644a9b;font-weight:bold">:</span> <span style="font-weight:bold">;</span> <span style="font-weight:bold">then</span> <span style="color:#644a9b;font-weight:bold">echo</span> <span style="font-weight:bold">;</span> <span style="font-weight:bold">elif</span> <span style="font-weight:bold">[[</span> : <span style="font-weight:bold">]]</span> <span style="font-weight:bold">;</span> <span style="font-weight:bold">then</span> <span style="color:#644a9b;font-weight:bold">echo</span> <span style="font-weight:bold">;</span> <span style="font-weight:bold">else</span> <span style="color:#644a9b;font-weight:bold">echo</span> <span style="font-weight:bold">;</span> <span style="font-weight:bold">fi</span>
<span style="font-weight:bold">while</span> <span style="color:#644a9b;font-weight:bold">:</span> <span style="font-weight:bold">||</span> <span style="color:#644a9b;font-weight:bold">:</span> <span style="font-weight:bold">;</span> <span style="font-weight:bold">do</span> <span style="color:#644a9b;font-weight:bold">echo</span> <span style="font-weight:bold">;</span> <span style="font-weight:bold">done</span>
<span style="font-weight:bold">until</span> <span style="color:#644a9b;font-weight:bold">:</span> <span style="font-weight:bold">;</span> <span style="color:#644a9b;font-weight:bold">:</span> <span style="font-weight:bold">;</span> <span style="font-weight:bold">do</span> <span style="color:#644a9b;font-weight:bold">echo</span> <span style="font-weight:bold">;</span> <span style="font-weight:bold">done</span>
<span style="font-weight:bold">case</span> a <span style="font-weight:bold">in</span> <span style="color:#ff5500">a</span><span style="font-weight:bold">)</span> <span style="font-weight:bold">esac</span>
<span style="font-weight:bold">case</span> a <span style="font-weight:bold">in</span> <span style="color:#ff5500">a</span><span style="font-weight:bold">)</span> <span style="color:#644a9b;font-weight:bold">echo</span> <span style="font-weight:bold">;</span> <span style="font-weight:bold">esac</span>
<span style="font-weight:bold">case</span> pwd <span style="font-weight:bold">in</span> <span style="font-weight:bold">(</span><span style="color:#ff5500">patt1</span><span style="font-weight:bold">)</span> <span style="color:#644a9b;font-weight:bold">echo</span> <span style="font-weight:bold">;</span> <span style="color:#644a9b;font-weight:bold">echo</span> <span style="font-weight:bold">;;</span> <span style="font-weight:bold">(</span><span style="color:#ff5500">patt</span><span style="color:#006e28">*</span><span style="font-weight:bold">)</span> <span style="color:#644a9b;font-weight:bold">echo</span> <span style="font-weight:bold">;;&amp;</span> <span style="color:#ff5500">patt</span><span style="color:#006e28">?</span><span style="font-weight:bold">|</span><span style="color:#ff5500">patt</span><span style="font-weight:bold">)</span> <span style="color:#644a9b;font-weight:bold">echo</span> <span style="font-weight:bold">;&amp;</span>
<span style="color:#ff5500">patt</span><span style="font-weight:bold">)</span> <span style="color:#644a9b;font-weight:bold">echo</span> <span style="font-weight:bold">;;</span> <span style="font-weight:bold">esac</span>
<span style="font-weight:bold">for</span> name <span style="font-weight:bold">in</span> a
<span style="color:#0095ff;font-weight:bold">b</span> c <span style="font-weight:bold">;</span>
<span style="font-weight:bold">do</span>
<span style="color:#644a9b;font-weight:bold">echo</span>
<span style="font-weight:bold">done</span>
<span style="font-weight:bold">case</span> a <span style="font-weight:bold">in</span>
<span style="color:#ff5500">a</span><span style="color:#0057ae">\(</span> <span style="font-weight:bold">|</span> <span style="color:#ff5500">b</span><span style="color:#006e28">*</span><span style="color:#ff5500">c</span><span style="color:#006e28">?</span> <span style="font-weight:bold">)</span> <span style="color:#644a9b;font-weight:bold">echo</span>
<span style="font-weight:bold">(</span><span style="color:#0095ff;font-weight:bold">b</span><span style="color:#0057ae">$</span><span style="color:#0057ae">c</span><span style="font-weight:bold">)</span> <span style="color:#898887"># no pattern</span>
<span style="font-weight:bold">;;</span>
<span style="font-weight:bold">(</span><span style="color:#ff5500">b</span><span style="color:#0057ae">$</span><span style="color:#0057ae">c</span><span style="font-weight:bold">)</span> <span style="font-weight:bold">;;</span>
<span style="color:#898887"># no pattern</span>
<span style="font-weight:bold">(</span><span style="color:#ff5500">b</span><span style="color:#0057ae">$</span><span style="color:#0057ae">c</span><span style="font-weight:bold">)</span>
<span style="font-weight:bold">esac</span>
<span style="font-weight:bold">case</span> <span style="color:#bf0303">"</span><span style="color:#0057ae">$</span><span style="color:#0057ae">1</span><span style="color:#bf0303">"</span> <span style="font-weight:bold">in</span>
<span style="color:#bf0303">"a"</span><span style="font-weight:bold">)</span> <span style="color:#0095ff;font-weight:bold">run_a</span><span style="font-weight:bold">|&amp;</span><span style="color:#0095ff;font-weight:bold">a</span><span style="font-weight:bold">;;</span>
<span style="color:#bf0303">"b"</span><span style="font-weight:bold">)</span> <span style="color:#0095ff;font-weight:bold">run_b</span><span style="font-weight:bold">;;</span>
<span style="color:#bf0303">"c"</span><span style="font-weight:bold">)</span> <span style="color:#0095ff;font-weight:bold">run_c</span><span style="font-weight:bold">;;</span>
<span style="color:#006e28">*</span><span style="font-weight:bold">)</span> <span style="color:#644a9b;font-weight:bold">echo</span> <span style="color:#bf0303">"Plase choose between 'a', 'b' or 'c'"</span> <span style="font-weight:bold">&amp;&amp;</span> <span style="color:#644a9b;font-weight:bold">exit</span> 1<span style="font-weight:bold">;;</span>
<span style="font-weight:bold">esac</span>
</pre></body></html>