File indexing completed on 2024-05-12 04:02:08

0001 <!DOCTYPE html>
0002 <html><head>
0003 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
0004 <title>highlight.sh</title>
0005 <meta name="generator" content="KF5::SyntaxHighlighting - Definition (Bash) - Theme (Breeze Dark)"/>
0006 </head><body style="background-color:#232629;color:#cfcfc2"><pre>
0007 <span style="color:#7a7c7d">#! /bin/sh</span>
0008 <span style="color:#7a7c7d"># This is a test script for the Katepart Bash Syntax Highlighting by</span>
0009 <span style="color:#7a7c7d">#   Wilbert Berendsen.  This is not runnable !!!</span>
0010 
0011 
0012 <span style="color:#7a7c7d"># The highlighting recognizes basic types of input, and has a few special cases that</span>
0013 <span style="color:#7a7c7d"># are all in FindCommands.  The main objective is to create really proper nesting of</span>
0014 <span style="color:#7a7c7d"># (multiline) strings, variables, expressions, etc.</span>
0015 
0016 
0017 
0018 <span style="color:#7a7c7d"># ============== Tests: ===============</span>
0019 
0020 <span style="color:#7a7c7d"># basic types:</span>
0021 <span style="color:#7f8c8d">echo</span> <span style="color:#f44f4f">'single quoted string'</span>
0022 <span style="color:#7f8c8d">echo</span> <span style="color:#f44f4f">"double quoted string"</span>
0023 <span style="color:#7f8c8d">echo</span> <span style="color:#f44f4f">$'string with esc</span><span style="color:#2980b9">\a</span><span style="color:#f44f4f">pes</span><span style="color:#2980b9">\x0d</span><span style="color:#f44f4f">in it'</span>
0024 <span style="color:#7f8c8d">echo</span> <span style="color:#f44f4f">$"</span><span style="color:#f44f4f">string meant to be translated"</span>
0025 <span style="color:#7f8c8d">echo</span> <span style="color:#f44f4f">"$"</span>
0026 
0027 
0028 <span style="color:#7a7c7d"># comments:</span>
0029 <span style="color:#7a7c7d"># this is a comment</span>
0030 <span style="color:#7a7c7d">#this too</span>
0031 <span style="color:#7f8c8d">echo</span> this is#nt a comment
0032 <span style="color:#8e44ad">dcop</span> kate EditInterface#1 <span style="color:#7a7c7d">#this is</span>
0033 <span style="color:#8e44ad">grep</span> <span style="color:#2980b9">-e</span> <span style="color:#f44f4f">"^default/linux/amd64/"</span> <span style="font-weight:bold">|</span><span style="color:#0099ff;font-weight:bold">\ #this</span> is not a comment but <span style="color:#7a7c7d">#this is</span>
0034 <span style="color:#8e44ad">mkdir</span> this<span style="color:#2980b9">\ </span>isnt<span style="color:#2980b9">\ </span>#a<span style="color:#2980b9">\ </span>comment
0035 <span style="color:#8e44ad">mkdir</span> this<span style="color:#2980b9">\ </span>isnt<span style="color:#2980b9">\\\;</span>#a<span style="color:#2980b9">\ </span>comment
0036 <span style="color:#8e44ad">mkdir</span> this<span style="color:#2980b9">\\</span> <span style="color:#7a7c7d">#is a comment</span>
0037 
0038 <span style="color:#3f8058">&lt;&lt;'#BLOCK-COMMENT'</span>
0039 <span style="color:#81ca2d;background-color:#4d1f24;font-weight:bold">NOTE</span><span style="color:#7a7c7d"> This is the "miltiline" comment.</span>
0040 
0041 <span style="color:#2980b9;background-color:#153042">[===[.rst:</span>
0042 
0043 <span style="color:#7a7c7d">Docs</span>
0044 <span style="color:#7a7c7d">----</span>
0045 
0046 <span style="color:#7a7c7d">Documentation block in </span><span style="color:#2980b9">``RST``</span><span style="color:#7a7c7d"> format </span><span style="font-weight:bold">**starts**</span><span style="color:#7a7c7d"> </span><span style="font-style:italic">*here*</span><span style="color:#7a7c7d">.</span>
0047 
0048 <span style="color:#2980b9;background-color:#153042">]===]</span>
0049 <span style="color:#3f8058">#BLOCK-COMMENT</span>
0050 
0051 <span style="color:#7f8c8d">:</span><span style="color:#7a7c7d"> </span><span style="color:#3f8058">&lt;&lt; '#SC2188'</span>
0052 <span style="color:#2980b9;background-color:#153042">[====[.rst:</span>
0053 <span style="color:#7a7c7d">The </span><span style="font-style:italic">*multiline*</span><span style="color:#7a7c7d"> comment does not trigger the </span><span style="color:#27ae60">SC2188_</span><span style="color:#7a7c7d"> warning of </span><span style="color:#f67400">`shellcheck`</span><span style="color:#7a7c7d">.</span>
0054 
0055 <span style="color:#2980b9">.. _SC2188: </span><span style="color:#27ae60">https://www.shellcheck.net/wiki/SC2188</span>
0056 <span style="color:#2980b9;background-color:#153042">]====]</span>
0057 
0058 <span style="color:#7a7c7d">... continue with _normal_ Bash comment.</span>
0059 <span style="color:#3f8058">#SC2188</span>
0060 
0061 <span style="color:#7a7c7d"># brace expansion</span>
0062 <span style="color:#8e44ad">mv</span> my_file.<span style="color:#2980b9">{JPG</span><span style="color:#3f8058">,</span><span style="color:#2980b9">jpg}</span>
0063 <span style="color:#7f8c8d">echo</span> f.<span style="color:#2980b9">{</span><span style="color:#f67400">01</span><span style="color:#2980b9">..</span><span style="color:#f67400">100</span><span style="color:#2980b9">..</span><span style="color:#f67400">3</span><span style="color:#2980b9">}</span> f.<span style="color:#2980b9">{</span>Z<span style="color:#2980b9">..</span>a<span style="color:#2980b9">..</span><span style="color:#f67400">-3</span><span style="color:#2980b9">}</span>
0064 <span style="color:#7f8c8d">echo</span> f.<span style="color:#2980b9">{</span><span style="color:#f67400">01</span><span style="color:#2980b9">..</span><span style="color:#f67400">100</span><span style="color:#2980b9">}</span> f.<span style="color:#2980b9">{</span>a<span style="color:#2980b9">..</span>Z<span style="color:#2980b9">}</span>
0065 <span style="color:#7a7c7d"># no brace expansion</span>
0066 <span style="color:#7f8c8d">echo</span> f.{..100} f.{1..Z} f.{a..Z..}
0067 
0068 
0069 <span style="color:#7a7c7d"># special characters are escaped:</span>
0070 <span style="color:#7f8c8d">echo</span> <span style="color:#2980b9">\(</span>output<span style="color:#2980b9">\)</span> <span style="color:#2980b9">\&amp;\|</span> <span style="color:#2980b9">\></span> <span style="color:#2980b9">\&lt;</span> <span style="color:#2980b9">\"</span> <span style="color:#2980b9">\'</span> <span style="color:#2980b9">\*</span>
0071 
0072 
0073 <span style="color:#7a7c7d"># variable substitution:</span>
0074 <span style="color:#7f8c8d">echo</span> <span style="color:#27aeae">$</span><span style="color:#27aeae">filename</span>.ext
0075 <span style="color:#7f8c8d">echo</span> <span style="color:#27aeae">$</span><span style="color:#27aeae">filename_ext</span>
0076 <span style="color:#7f8c8d">echo</span> <span style="color:#27aeae">${</span><span style="color:#27aeae">filename</span><span style="color:#27aeae">}</span>_ext
0077 <span style="color:#7f8c8d">echo</span> text<span style="color:#27aeae">${</span><span style="color:#27aeae">array</span><span style="color:#3f8058">[</span><span style="color:#27aeae">$</span><span style="color:#27aeae">subscript</span><span style="color:#3f8058">]</span><span style="color:#27aeae">}</span>.text
0078 <span style="color:#7f8c8d">echo</span> text<span style="color:#27aeae">${</span><span style="color:#27aeae">array</span><span style="color:#3f8058">[</span><span style="color:#f44f4f">"string"</span><span style="color:#3f8058">]</span><span style="color:#27aeae">}</span>.text
0079 <span style="color:#7f8c8d">echo</span> <span style="color:#27aeae">${</span><span style="color:#3f8058">!</span><span style="color:#27aeae">prefix</span><span style="color:#3f8058">*</span><span style="color:#27aeae">}</span>
0080 <span style="color:#7f8c8d">echo</span> <span style="color:#27aeae">${</span><span style="color:#3f8058">!</span><span style="color:#27aeae">redir</span><span style="color:#27aeae">}</span> <span style="color:#27aeae">${</span><span style="color:#3f8058">!</span><span style="color:#27aeae">3</span><span style="color:#27aeae">}</span> <span style="color:#27aeae">${</span><span style="color:#3f8058">!#</span><span style="color:#27aeae">}</span> <span style="color:#27aeae">${</span><span style="color:#3f8058">!##</span><span style="color:#27aeae">}</span> <span style="color:#27aeae">${</span><span style="color:#3f8058">!@###</span><span style="color:#27aeae">}</span> <span style="color:#27aeae">${</span><span style="color:#27aeae">!</span><span style="color:#27aeae">}</span>
0081 <span style="color:#7f8c8d">echo</span> short are <span style="color:#27aeae">$</span><span style="color:#27aeae">_</span>, <span style="color:#27aeae">$</span><span style="color:#27aeae">$</span>, <span style="color:#27aeae">$</span><span style="color:#27aeae">?</span>, <span style="color:#27aeae">${</span><span style="color:#27aeae">@</span><span style="color:#27aeae">}</span>, etc.
0082 <span style="color:#7f8c8d">echo</span> <span style="color:#27aeae">${</span><span style="color:#27aeae">variable</span><span style="color:#3f8058">/</span><span style="color:#da4453">a</span><span style="color:#3f8058">/</span>d<span style="color:#27aeae">}</span>
0083 <span style="color:#7f8c8d">echo</span> <span style="color:#27aeae">${</span><span style="color:#27aeae">1</span><span style="color:#3f8058">:-</span>default<span style="color:#27aeae">}</span>
0084 <span style="color:#7f8c8d">echo</span> <span style="color:#27aeae">${</span><span style="color:#27aeae">10</span><span style="color:#27aeae">}</span> <span style="color:#27aeae">$</span><span style="color:#27aeae">1</span>0a <span style="color:#7a7c7d"># 9 is max</span>
0085 
0086 
0087 <span style="color:#7a7c7d"># expression subst:</span>
0088 <span style="color:#7f8c8d">echo</span> <span style="color:#27aeae">$((</span> <span style="color:#27aeae">cd</span> <span style="color:#3f8058">&lt;&lt;</span> <span style="color:#27aeae">ed</span> <span style="color:#3f8058">+</span> <span style="color:#f67400">1</span> <span style="color:#27aeae">))</span>
0089 
0090 
0091 <span style="color:#7a7c7d"># command subst:</span>
0092 <span style="color:#7f8c8d">echo</span> <span style="color:#27aeae">$(</span><span style="color:#8e44ad">ls</span> <span style="color:#2980b9">-l</span><span style="color:#27aeae">)</span>
0093 <span style="color:#7f8c8d">echo</span> <span style="font-weight:bold">`</span><span style="color:#8e44ad">cat</span> myfile<span style="font-weight:bold">`</span>
0094 
0095 
0096 <span style="color:#7a7c7d"># file subst:</span>
0097 <span style="color:#7f8c8d">echo</span> <span style="color:#27aeae">$(</span><span style="color:#3f8058">&lt;</span><span style="color:#27aeae">$</span><span style="color:#27aeae">filename</span><span style="color:#27aeae">)</span>
0098 <span style="color:#7f8c8d">echo</span> <span style="color:#27aeae">$(</span><span style="color:#3f8058">&lt;</span>/path/to/myfile<span style="color:#27aeae">)</span>
0099 
0100 <span style="color:#7a7c7d"># process subst:</span>
0101 <span style="color:#8e44ad">sort</span> <span style="color:#3f8058">&lt;(</span><span style="color:#0099ff;font-weight:bold">show_labels</span><span style="color:#3f8058">)</span> <span style="font-weight:bold">|</span> <span style="color:#8e44ad">sed</span> <span style="color:#f44f4f">'s/a/bg'</span> <span style="color:#3f8058">></span> my_file.txt <span style="color:#f67400">2</span><span style="color:#3f8058">>&amp;</span><span style="color:#f67400">1</span>
0102 
0103 
0104 <span style="color:#7a7c7d"># All substitutions also work in strings:</span>
0105 <span style="color:#7f8c8d">echo</span> <span style="color:#f44f4f">"subst </span><span style="color:#27aeae">${</span><span style="color:#27aeae">in</span><span style="color:#27aeae">}</span><span style="color:#f44f4f">side string"</span>  <span style="color:#f44f4f">'not $inside this ofcourse'</span>
0106 <span style="color:#7f8c8d">echo</span> <span style="color:#f44f4f">"The result is </span><span style="color:#27aeae">$((</span> <span style="color:#27aeae">$</span><span style="color:#27aeae">a</span> <span style="color:#3f8058">+</span> <span style="color:#27aeae">$</span><span style="color:#27aeae">b</span> <span style="color:#27aeae">))</span><span style="color:#f44f4f">. Thanks!"</span>
0107 <span style="color:#7f8c8d">echo</span> <span style="color:#f44f4f">"Your homedir contains </span><span style="font-weight:bold">`</span><span style="color:#8e44ad">ls</span> <span style="color:#27aeae">$</span><span style="color:#27aeae">HOME</span> <span style="font-weight:bold">|</span><span style="color:#8e44ad">wc</span> <span style="color:#2980b9">-l</span><span style="font-weight:bold">`</span><span style="color:#f44f4f"> files."</span>
0108 
0109 
0110 <span style="color:#7a7c7d"># Escapes in strings:</span>
0111 <span style="color:#27aeae">p</span><span style="color:#3f8058">=</span><span style="color:#f44f4f">"String </span><span style="color:#2980b9">\`</span><span style="color:#f44f4f"> with </span><span style="color:#2980b9">\$</span><span style="color:#f44f4f"> escapes </span><span style="color:#2980b9">\"</span><span style="color:#f44f4f"> "</span><span style="font-weight:bold">;</span>
0112 
0113 
0114 <span style="color:#7a7c7d"># keywords are black, builtins dark purple and common commands lighter purple</span>
0115 <span style="color:#7f8c8d">set</span>
0116 <span style="color:#7f8c8d">exit</span>
0117 <span style="color:#8e44ad">login</span>
0118 
0119 
0120 <span style="color:#7a7c7d"># Other colorings:</span>
0121 <span style="color:#8e44ad">error()</span> <span style="font-weight:bold">{</span>
0122     <span style="color:#8e44ad">cat</span> /usr/bin/lesspipe.sh
0123     <span style="color:#0099ff;font-weight:bold">runscript</span> <span style="color:#3f8058">>&amp;</span> redir.bak
0124     <span style="color:#7f8c8d">exec</span> <span style="color:#f67400">3</span><span style="color:#3f8058">>&amp;</span><span style="color:#f67400">4</span>
0125 <span style="font-weight:bold">}</span>
0126 
0127 
0128 <span style="color:#7a7c7d"># do - done make code blocks</span>
0129 <span style="color:#fdbc4b;font-weight:bold">while</span> <span style="color:#7f8c8d">[</span> <span style="color:#27aeae">$</span><span style="color:#27aeae">p</span> <span style="color:#27ae60">-lt</span> <span style="color:#27aeae">$</span><span style="color:#27aeae">q</span> <span style="color:#7f8c8d">]</span>
0130 <span style="color:#fdbc4b;font-weight:bold">do</span>
0131     <span style="color:#8e44ad">chown</span> 0644 <span style="color:#27aeae">$</span><span style="color:#27aeae">file</span>.<span style="color:#27aeae">$</span><span style="color:#27aeae">p</span>
0132 <span style="color:#fdbc4b;font-weight:bold">done</span>
0133 
0134 
0135 <span style="color:#7a7c7d"># braces as well</span>
0136 <span style="color:#0099ff;font-weight:bold">run_prog</span> <span style="font-weight:bold">|</span> <span style="color:#8e44ad">sort</span> <span style="color:#2980b9">-u</span> <span style="font-weight:bold">|</span>
0137 <span style="font-weight:bold">{</span>
0138     <span style="color:#7f8c8d">echo</span> Header
0139     <span style="color:#fdbc4b;font-weight:bold">while</span> <span style="color:#7f8c8d">read</span> <span style="color:#27aeae">a</span> <span style="color:#27aeae">b</span> <span style="color:#27aeae">d</span>
0140     <span style="color:#fdbc4b;font-weight:bold">do</span>
0141         <span style="color:#7f8c8d">echo</span> <span style="color:#27aeae">$</span><span style="color:#27aeae">a</span>/<span style="color:#27aeae">$</span><span style="color:#27aeae">b</span>/<span style="color:#27aeae">$</span><span style="color:#27aeae">c</span>
0142     <span style="color:#fdbc4b;font-weight:bold">done</span>
0143     <span style="color:#7f8c8d">echo</span> Footer
0144 <span style="font-weight:bold">}</span>
0145 
0146 
0147 <span style="color:#7a7c7d"># Any constructions can be nested:</span>
0148 <span style="color:#7f8c8d">echo</span> <span style="color:#f44f4f">"A long string with </span><span style="color:#27aeae">$(</span>
0149     <span style="color:#fdbc4b;font-weight:bold">if</span> <span style="color:#7f8c8d">[</span> <span style="color:#27aeae">$</span><span style="color:#27aeae">count</span> <span style="color:#27ae60">-gt</span> 100 <span style="color:#7f8c8d">]</span> <span style="font-weight:bold">;</span> <span style="color:#fdbc4b;font-weight:bold">then</span>
0150         <span style="color:#7f8c8d">echo</span> <span style="color:#f44f4f">"much"</span>
0151     <span style="color:#fdbc4b;font-weight:bold">else</span>
0152         <span style="color:#7f8c8d">echo</span> <span style="color:#f44f4f">"not much"</span>
0153     <span style="color:#fdbc4b;font-weight:bold">fi</span> <span style="color:#27aeae">)</span><span style="color:#f44f4f"> substitutions."</span> <span style="font-weight:bold">;</span>
0154 
0155 
0156 <span style="color:#7a7c7d"># Even the case construct is correctly folded:</span>
0157 <span style="color:#7f8c8d">test</span> <span style="color:#2980b9">-f</span> blaat <span style="font-weight:bold">&amp;&amp;</span>
0158 <span style="font-weight:bold">(</span> <span style="color:#0099ff;font-weight:bold">do_something</span>
0159     <span style="color:#fdbc4b;font-weight:bold">case</span> <span style="color:#27aeae">$</span><span style="color:#27aeae">p</span> <span style="font-weight:bold">in</span>
0160         <span style="color:#27ae60">*</span><span style="color:#da4453">bak</span><span style="font-weight:bold">)</span>
0161             <span style="color:#0099ff;font-weight:bold">do_bak</span> <span style="color:#27aeae">$</span><span style="color:#27aeae">p</span>
0162             <span style="color:#fdbc4b;font-weight:bold">;;</span>
0163         <span style="color:#27ae60">*</span><span style="font-weight:bold">)</span>
0164             <span style="color:#0099ff;font-weight:bold">dont_bak</span> <span style="color:#27aeae">$</span><span style="color:#27aeae">p</span>
0165             <span style="color:#fdbc4b;font-weight:bold">;;</span>
0166     <span style="color:#fdbc4b;font-weight:bold">esac</span>
0167 <span style="font-weight:bold">)</span> <span style="color:#7a7c7d"># despite the extra parentheses in the case construction.</span>
0168 
0169 
0170 <span style="color:#7a7c7d"># more control flow</span>
0171 <span style="color:#fdbc4b;font-weight:bold">while</span> <span style="color:#7f8c8d">:</span><span style="font-weight:bold">;</span>
0172   <span style="color:#fdbc4b;font-weight:bold">break</span>
0173   <span style="color:#fdbc4b;font-weight:bold">continue</span>
0174   <span style="color:#fdbc4b;font-weight:bold">return</span>
0175 <span style="color:#fdbc4b;font-weight:bold">done</span>
0176 
0177 
0178 <span style="color:#7a7c7d"># variable assignments:</span>
0179 <span style="color:#27aeae">DIR</span><span style="color:#3f8058">=</span>/dev
0180 <span style="color:#27aeae">p</span><span style="color:#3f8058">=</span><span style="font-weight:bold">`</span><span style="color:#8e44ad">ls</span><span style="font-weight:bold">`</span>
0181 <span style="color:#27aeae">LC_ALL</span><span style="color:#3f8058">=</span><span style="color:#f44f4f">"nl"</span> <span style="color:#8e44ad">dcop</span> <span style="color:#f44f4f">'kate*'</span>
0182 <span style="color:#27aeae">_VAR</span><span style="color:#3f8058">=</span>val
0183 <span style="color:#27aeae">ARR</span><span style="color:#3f8058">=</span><span style="color:#27aeae">(</span>this is an array<span style="color:#27aeae">)</span>
0184 <span style="color:#27aeae">ARR2</span><span style="color:#3f8058">=</span><span style="color:#27aeae">(</span><span style="color:#3f8058">[</span>this<span style="color:#3f8058">]</span><span style="color:#27aeae">=</span>too <span style="color:#3f8058">[</span>and<span style="color:#3f8058">]</span><span style="color:#27aeae">=</span><span style="color:#f44f4f">"this too"</span><span style="color:#27aeae">)</span>
0185 <span style="color:#27aeae">usage</span><span style="color:#3f8058">=</span><span style="color:#f44f4f">"</span><span style="color:#27aeae">$</span><span style="color:#27aeae">0</span><span style="color:#f44f4f"> -- version </span><span style="color:#27aeae">$</span><span style="color:#27aeae">VERSION</span>
0186 <span style="color:#f44f4f">Multiple lines of output</span>
0187 <span style="color:#f44f4f">can be possible."</span>
0188 <span style="color:#27aeae">ANSWER</span><span style="color:#3f8058">=</span>yes    <span style="color:#7a7c7d"># here 'yes' isn't highlighed as command</span>
0189 
0190 
0191 <span style="color:#7a7c7d"># Some commands expect variable names, these are colored correctly:</span>
0192 <span style="color:#7f8c8d">export</span> <span style="color:#27aeae">PATH</span><span style="color:#3f8058">=</span>/my/bin:<span style="color:#27aeae">$</span><span style="color:#27aeae">PATH</span> <span style="color:#27aeae">BLAAT</span>
0193 <span style="color:#7f8c8d">export</span> <span style="color:#27aeae">A</span> <span style="color:#27aeae">B</span> <span style="color:#27aeae">D</span>
0194 <span style="color:#7f8c8d">local</span> <span style="color:#27aeae">p</span><span style="color:#3f8058">=</span>3  <span style="color:#27aeae">x</span>  <span style="color:#27aeae">y</span><span style="color:#3f8058">=</span><span style="color:#f44f4f">'\'</span>
0195 <span style="color:#7f8c8d">read</span> <span style="color:#27aeae">x</span> <span style="color:#27aeae">y</span> <span style="color:#27aeae">z</span> <span style="color:#3f8058">&lt;&lt;&lt;</span> <span style="color:#27aeae">$</span><span style="color:#27aeae">hallo</span>
0196 <span style="color:#7f8c8d">unset</span> <span style="color:#27aeae">B</span>
0197 <span style="color:#7f8c8d">declare</span> <span style="color:#2980b9">-a</span> <span style="color:#27aeae">VAR1</span> <span style="color:#27aeae">VAR2</span> <span style="font-weight:bold">&amp;&amp;</span> <span style="color:#7f8c8d">exit</span>
0198 <span style="color:#7f8c8d">declare</span> <span style="color:#27aeae">less</span> <span style="color:#27aeae">a</span> <span style="font-weight:bold">&amp;&amp;</span> <span style="color:#0099ff;font-weight:bold">b</span>
0199 <span style="color:#7f8c8d">declare</span> <span style="color:#27aeae">a</span><span style="color:#3f8058">=</span><span style="color:#27aeae">(</span>1 2<span style="color:#27aeae">)</span>
0200 <span style="color:#7f8c8d">getopts</span> <span style="color:#3f8058">:</span>h<span style="color:#3f8058">:</span>l<span style="color:#3f8058">::</span>d <span style="color:#27aeae">arg</span>
0201 <span style="color:#7f8c8d">read</span> <span style="color:#7a7c7d">#comment</span>
0202 <span style="color:#7f8c8d">let</span> <span style="color:#27aeae">a</span><span style="color:#3f8058">=</span><span style="color:#f67400">4</span><span style="color:#3f8058">+</span><span style="color:#f67400">4</span> <span style="color:#f67400">3</span><span style="color:#3f8058">+</span><span style="color:#27aeae">a</span> <span style="color:#27aeae">b</span><span style="color:#3f8058">=</span><span style="color:#27aeae">c</span><span style="color:#3f8058">+</span><span style="color:#f67400">3</span> <span style="color:#27aeae">d</span><span style="color:#3f8058">+</span><span style="color:#f67400">3</span> <span style="color:#27aeae">d</span><span style="color:#27ae60">*</span>4 <span style="color:#7a7c7d"># * is a glob</span>
0203 
0204 <span style="color:#7a7c7d"># options are recoqnized:</span>
0205 <span style="color:#8e44ad">zip</span> <span style="color:#2980b9">-f</span><span style="color:#3f8058">=</span>file.zip
0206 <span style="color:#0099ff;font-weight:bold">./configure</span>  <span style="color:#2980b9">--destdir</span><span style="color:#3f8058">=</span>/usr
0207 <span style="color:#8e44ad">make</span>  destdir=/usr/
0208 
0209 
0210 <span style="color:#7a7c7d"># [[ and [ correctly need spaces to be regarded as structure,</span>
0211 <span style="color:#7a7c7d"># otherwise they are patterns (currently treated as normal text)</span>
0212 <span style="color:#fdbc4b;font-weight:bold">if</span> <span style="color:#7f8c8d">[</span> <span style="color:#f44f4f">"</span><span style="color:#27aeae">$</span><span style="color:#27aeae">p</span><span style="color:#f44f4f">"</span> <span style="color:#27ae60">==</span> <span style="color:#f44f4f">""</span> <span style="color:#7f8c8d">]</span> <span style="font-weight:bold">;</span> <span style="color:#fdbc4b;font-weight:bold">then</span>
0213     <span style="color:#8e44ad">ls</span> /usr/bin/<span style="color:#27ae60">[</span><span style="color:#da4453">a</span><span style="color:#27ae60">-</span><span style="color:#da4453">z</span><span style="color:#27ae60">]*</span>
0214 <span style="color:#fdbc4b;font-weight:bold">elif</span> <span style="font-weight:bold">[[</span> <span style="color:#27aeae">$</span><span style="color:#27aeae">p</span> <span style="color:#27ae60">==</span> 0 <span style="font-weight:bold">]]</span> <span style="font-weight:bold">;</span> <span style="color:#fdbc4b;font-weight:bold">then</span>
0215     <span style="color:#8e44ad">ls</span> /usr/share/<span style="color:#27aeae">$</span><span style="color:#27aeae">p</span>
0216 <span style="color:#fdbc4b;font-weight:bold">fi</span>
0217 
0218 <span style="color:#7a7c7d"># Fixed:</span>
0219 <span style="color:#8e44ad">ls</span> a<span style="color:#27ae60">[</span><span style="color:#da4453">ab</span><span style="color:#27ae60">]*</span>       <span style="color:#7a7c7d"># dont try to interprete as assignment with subscript (fixed)</span>
0220 <span style="color:#27aeae">a</span><span style="color:#3f8058">[</span>ab<span style="color:#3f8058">]</span>
0221 <span style="color:#27aeae">a</span><span style="color:#3f8058">[</span>ab<span style="color:#3f8058">]</span><span style="color:#3f8058">=</span>sa
0222 
0223 
0224 <span style="color:#7a7c7d"># Here documents are difficult to catch:</span>
0225 <span style="color:#8e44ad">cat</span> <span style="color:#3f8058">></span> myfile <span style="color:#3f8058">&lt;&lt; __EOF__</span>
0226 <span style="color:#f44f4f">You're right, this is definitely no bash code</span>
0227 <span style="color:#f44f4f">But ls more </span><span style="color:#27aeae">$</span><span style="color:#27aeae">parameters</span><span style="color:#f44f4f"> should be expanded.</span>
0228 <span style="color:#3f8058">__EOF__</span>
0229 
0230 
0231 <span style="color:#7a7c7d"># quoted:</span>
0232 <span style="color:#8e44ad">cat</span> <span style="color:#3f8058">&lt;&lt; "EOF"</span> <span style="font-weight:bold">|</span> <span style="color:#8e44ad">egrep</span> <span style="color:#f44f4f">"this"</span> <span style="color:#3f8058">>&amp;</span><span style="color:#f67400">4</span>   <span style="color:#7a7c7d"># the rest of the line is still considered bash source</span>
0233 <span style="color:#f44f4f">You're right, this is definitely no bash code</span>
0234 <span style="color:#f44f4f">But ls more $parameters should be expanded. :-></span>
0235 <span style="color:#3f8058">EOF</span>
0236 
0237 <span style="color:#8e44ad">cat</span> <span style="color:#3f8058">&lt;&lt;bla</span> <span style="font-weight:bold">||</span> <span style="color:#7f8c8d">exit</span>
0238 <span style="color:#f44f4f">bla bla</span>
0239 <span style="color:#3f8058">bla</span>
0240 
0241 
0242 <span style="color:#7a7c7d"># indented:</span>
0243 <span style="color:#fdbc4b;font-weight:bold">if</span> <span style="color:#8e44ad">true</span>
0244 <span style="color:#fdbc4b;font-weight:bold">then</span>
0245     <span style="color:#8e44ad">cat</span> <span style="color:#3f8058">&lt;&lt;- EOF</span>
0246 <span style="color:#f44f4f">        Indented text with a </span><span style="color:#27aeae">$</span><span style="color:#27aeae">dollar</span><span style="color:#f44f4f"> or </span><span style="color:#2980b9">\$</span><span style="color:#f44f4f">two</span>
0247 <span style="color:#3f8058">    EOF</span>
0248 <span style="color:#fdbc4b;font-weight:bold">elif</span> <span style="color:#7f8c8d">[</span> <span style="color:#27ae60">-d</span> <span style="color:#27aeae">$</span><span style="color:#27aeae">file</span> <span style="color:#7f8c8d">]</span><span style="font-weight:bold">;</span> <span style="color:#fdbc4b;font-weight:bold">then</span>
0249     <span style="color:#8e44ad">cat</span> <span style="color:#3f8058">&lt;&lt;- "EOF"</span>
0250 <span style="color:#f44f4f">        Indented text without a $dollar</span>
0251 <span style="color:#3f8058">    EOF</span>
0252 <span style="color:#fdbc4b;font-weight:bold">fi</span>
0253 
0254 <span style="color:#fdbc4b;font-weight:bold">if</span> <span style="color:#27ae60">! </span><span style="font-weight:bold">{</span> <span style="color:#0099ff;font-weight:bold">cmd1</span> <span style="font-weight:bold">&amp;&amp;</span> <span style="color:#0099ff;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="color:#fdbc4b;font-weight:bold">then</span> <span style="color:#7f8c8d">echo</span> ok <span style="font-weight:bold">;</span> <span style="color:#fdbc4b;font-weight:bold">fi</span>
0255 <span style="color:#fdbc4b;font-weight:bold">if</span> <span style="color:#27ae60">! </span><span style="color:#0099ff;font-weight:bold">cmd1</span> arg<span style="font-weight:bold">;</span> <span style="color:#fdbc4b;font-weight:bold">then</span> <span style="color:#7f8c8d">echo</span> ok <span style="font-weight:bold">;</span> <span style="color:#fdbc4b;font-weight:bold">fi</span>
0256 
0257 <span style="color:#fdbc4b;font-weight:bold">case</span> 1 <span style="font-weight:bold">in</span>
0258 <span style="color:#da4453">2</span><span style="font-weight:bold">)</span> <span style="color:#7f8c8d">echo</span> xxx<span style="font-weight:bold">;</span>
0259 <span style="color:#fdbc4b;font-weight:bold">;;</span>
0260 <span style="color:#27ae60">?</span><span style="font-weight:bold">)</span> <span style="color:#0099ff;font-weight:bold">foo</span> <span style="font-weight:bold">||</span> <span style="color:#0099ff;font-weight:bold">yyy</span> <span style="font-weight:bold">;</span> <span style="color:#0099ff;font-weight:bold">foo</span> abc <span style="font-weight:bold">||</span> <span style="color:#7f8c8d">echo</span> abc <span style="color:#fdbc4b;font-weight:bold">;;</span>
0261 <span style="color:#da4453">1</span><span style="font-weight:bold">)</span> <span style="color:#7f8c8d">echo</span> yyy<span style="font-weight:bold">;</span>
0262 <span style="color:#fdbc4b;font-weight:bold">esac</span>
0263 
0264 <span style="color:#8e44ad">ls</span> <span style="color:#7a7c7d">#should be outside of case 1 folding block</span>
0265 
0266 <span style="color:#fdbc4b;font-weight:bold">for</span> i <span style="font-weight:bold">in</span> <span style="font-weight:bold">`</span><span style="color:#8e44ad">ls</span> tests/auto/output/<span style="color:#27ae60">*</span>.html<span style="font-weight:bold">`</span><span style="font-weight:bold">;</span> <span style="color:#fdbc4b;font-weight:bold">do</span>
0267     <span style="color:#27aeae">refFile</span><span style="color:#3f8058">=</span><span style="font-weight:bold">`</span><span style="color:#7f8c8d">echo</span> <span style="color:#27aeae">$</span><span style="color:#27aeae">i</span> <span style="font-weight:bold">|</span> <span style="color:#8e44ad">sed</span> <span style="color:#2980b9">-e</span> s,build,src, <span style="font-weight:bold">|</span> <span style="color:#8e44ad">sed</span> <span style="color:#2980b9">-e</span> s,output,reference, <span style="font-weight:bold">|</span> <span style="color:#8e44ad">sed</span> <span style="color:#2980b9">-e</span> s,.html,.ref.html,<span style="font-weight:bold">`</span>
0268     <span style="color:#8e44ad">cp</span> <span style="color:#2980b9">-v</span> <span style="color:#27aeae">$</span><span style="color:#27aeae">i</span> <span style="color:#27aeae">$</span><span style="color:#27aeae">refFile</span>
0269 <span style="color:#fdbc4b;font-weight:bold">done</span>
0270 
0271 <span style="color:#7a7c7d">## >Settings >Configure Kate >Fonts &amp; Colors >Highlitghing Text Styles >Scripts/Bash >Option >Change colors to some distinct color</span>
0272 <span style="color:#7a7c7d">## 1- In following line the -ucode should not be colored as option</span>
0273 
0274 <span style="color:#0099ff;font-weight:bold">pacman</span> <span style="color:#2980b9">-Syu</span> <span style="color:#2980b9">--needed</span> intel-ucode grub
0275 <span style="color:#0099ff;font-weight:bold">pacman</span> <span style="color:#2980b9">-syu</span> <span style="color:#2980b9">--needed</span> intel-ucode grub
0276 
0277 <span style="color:#7a7c7d"># Braces (bug ##387915)</span>
0278 <span style="font-weight:bold">[[</span> <span style="color:#27aeae">$</span><span style="color:#27aeae">line_name</span> <span style="color:#27ae60">=~</span> <span style="color:#2980b9">\{</span><span style="color:#3f8058">([</span><span style="color:#da4453">0</span><span style="color:#3f8058">-</span><span style="color:#da4453">9</span><span style="color:#3f8058">]</span><span style="color:#27aeae">{</span><span style="color:#f67400">1</span><span style="color:#3f8058">,</span><span style="color:#27aeae">}</span><span style="color:#3f8058">)</span><span style="color:#2980b9">\}\{</span><span style="color:#3f8058">([</span><span style="color:#da4453">0</span><span style="color:#3f8058">-</span><span style="color:#da4453">9</span><span style="color:#3f8058">]</span><span style="color:#27aeae">{</span><span style="color:#f67400">1</span><span style="color:#3f8058">,</span><span style="color:#27aeae">}</span><span style="color:#3f8058">)</span><span style="color:#2980b9">\}</span><span style="color:#3f8058">(</span><span style="color:#27ae60">.*</span><span style="color:#3f8058">)</span> <span style="font-weight:bold">]]</span>
0279 <span style="font-weight:bold">[[</span> <span style="color:#27aeae">$</span><span style="color:#27aeae">name</span> <span style="color:#27ae60">=~</span> <span style="color:#3f8058">(</span><span style="color:#27ae60">.*</span><span style="color:#3f8058">)</span><span style="color:#da4453">_</span><span style="color:#3f8058">(</span><span style="color:#da4453">S</span><span style="color:#3f8058">[</span><span style="color:#da4453">0</span><span style="color:#3f8058">-</span><span style="color:#da4453">9</span><span style="color:#3f8058">]</span><span style="color:#27aeae">{</span><span style="color:#f67400">2</span><span style="color:#27aeae">}</span><span style="color:#3f8058">)(</span><span style="color:#da4453">E</span><span style="color:#3f8058">[</span><span style="color:#da4453">0</span><span style="color:#3f8058">-</span><span style="color:#da4453">9</span><span style="color:#3f8058">]</span><span style="color:#27aeae">{</span><span style="color:#f67400">2</span><span style="color:#3f8058">,</span><span style="color:#f67400">3</span><span style="color:#27aeae">}</span><span style="color:#3f8058">[</span><span style="color:#da4453">a</span><span style="color:#3f8058">-</span><span style="color:#da4453">z</span><span style="color:#3f8058">]</span><span style="color:#27aeae">{</span><span style="color:#f67400">0</span><span style="color:#3f8058">,</span><span style="color:#f67400">1</span><span style="color:#27aeae">}</span><span style="color:#3f8058">)</span><span style="color:#da4453">_</span><span style="color:#3f8058">(</span><span style="color:#27ae60">.*</span><span style="color:#3f8058">)</span> <span style="font-weight:bold">]]</span>
0280 <span style="color:#7a7c7d"># Comments in Braces (bug 450878)</span>
0281 <span style="font-weight:bold">[[</span> <span style="color:#7a7c7d"># comment 1</span>
0282    1 <span style="color:#27ae60">==</span> 1 <span style="color:#7a7c7d"># comment 2</span>
0283    <span style="color:#7a7c7d"># comment 3</span>
0284 <span style="font-weight:bold">]]</span>
0285 
0286 <span style="color:#8e44ad">rm</span> /data/<span style="color:#2980b9">{hello1</span><span style="color:#3f8058">,</span><span style="color:#2980b9">hello2}</span>/input/<span style="color:#2980b9">{bye1</span><span style="color:#3f8058">,</span><span style="color:#27aeae">$</span><span style="color:#27aeae">bye2</span><span style="color:#2980b9">}</span>/si<span style="color:#2980b9">{a</span><span style="color:#3f8058">,</span><span style="color:#27aeae">${</span><span style="color:#27aeae">b</span><span style="color:#27aeae">}</span><span style="color:#3f8058">,</span><span style="color:#2980b9">c{k</span><span style="color:#3f8058">,</span><span style="color:#2980b9">p{e</span><span style="color:#3f8058">,</span><span style="color:#2980b9">a}}}</span>/<span style="color:#27ae60">*</span>.non
0287 <span style="color:#8e44ad">rm</span> /data/{aa,<span style="color:#2980b9">{e</span><span style="color:#3f8058">,</span><span style="color:#2980b9">i}</span>t<span style="color:#2980b9">{b</span><span style="color:#3f8058">,</span><span style="color:#2980b9">c}</span> <span style="color:#7a7c7d"># Not closed</span>
0288 <span style="color:#8e44ad">rm</span> /data/<span style="color:#2980b9">{aa</span><span style="color:#3f8058">,</span><span style="color:#2980b9">{e</span><span style="color:#3f8058">,</span><span style="color:#2980b9">i}t{b</span><span style="color:#3f8058">,</span><span style="color:#2980b9">c}}</span>
0289 <span style="color:#8e44ad">rm</span> /data/<span style="color:#2980b9">{aa</span><span style="color:#3f8058">,</span><span style="color:#2980b9">{i}}</span>
0290 <span style="color:#8e44ad">rm</span> /data{aa{bb{cc{dd}}}}
0291 <span style="color:#8e44ad">rm</span> /data{aaa<span style="font-weight:bold">`</span><span style="color:#0099ff;font-weight:bold">aaa}aa</span><span style="font-weight:bold">`</span>aaa}a
0292 
0293 <span style="color:#27aeae">${</span><span style="color:#27aeae">array</span><span style="color:#3f8058">[</span><span style="color:#f67400">0</span><span style="color:#3f8058">]:</span> -<span style="color:#f67400">7</span> <span style="color:#3f8058">:</span> +  <span style="color:#f67400">22</span>  <span style="color:#27aeae">}</span>  <span style="color:#27aeae">${</span><span style="color:#27aeae">array</span><span style="color:#3f8058">[</span><span style="color:#f67400">1</span><span style="color:#3f8058">]:</span> num  <span style="color:#27aeae">}</span>
0294 <span style="color:#27aeae">${</span><span style="color:#27aeae">parameter</span><span style="color:#3f8058">##</span>word<span style="color:#27aeae">}</span> <span style="color:#27aeae">${</span><span style="color:#27aeae">parameter</span><span style="color:#3f8058">%%</span>word<span style="color:#27aeae">}</span> <span style="color:#27aeae">${</span><span style="color:#27aeae">parameter</span><span style="color:#3f8058">^^</span><span style="color:#da4453">pattern</span><span style="color:#27aeae">}</span> <span style="color:#27aeae">${</span><span style="color:#27aeae">parameter</span><span style="color:#3f8058">,,</span><span style="color:#da4453">pattern</span><span style="color:#27aeae">}</span> <span style="color:#27aeae">${</span><span style="color:#27aeae">parameter</span><span style="color:#3f8058">@</span><span style="color:#da4453;text-decoration:underline">operator</span><span style="color:#27aeae">}</span>
0295 
0296 <span style="color:#7a7c7d"># </span><span style="color:#ca9219;background-color:#451e1a;font-weight:bold">TODO</span><span style="color:#7a7c7d"> `</span>
0297 
0298 <span style="color:#7a7c7d"># commands</span>
0299 <span style="color:#0099ff;font-weight:bold">abc</span>
0300 <span style="color:#8e44ad">cp</span>
0301 <span style="color:#7f8c8d">:</span>
0302 <span style="color:#7f8c8d">.</span>
0303 <span style="color:#0099ff;font-weight:bold">:#nokeyword</span>
0304 <span style="color:#0099ff;font-weight:bold">path/cmd</span>
0305 <span style="color:#0099ff;font-weight:bold">ec</span><span style="color:#2980b9">\</span>
0306 <span style="color:#0099ff;font-weight:bold">ho</span>
0307 <span style="color:#0099ff;font-weight:bold">2</span>
0308 <span style="color:#0099ff;font-weight:bold">{ab}c</span>
0309 <span style="color:#2980b9">{a</span><span style="color:#3f8058">,</span><span style="color:#2980b9">b}</span><span style="color:#0099ff;font-weight:bold">c</span>
0310 <span style="color:#f44f4f">'a'</span><span style="color:#0099ff;font-weight:bold">c</span>
0311 <span style="color:#27aeae">$</span><span style="color:#27aeae">ab</span>
0312 <span style="color:#27aeae">${</span><span style="color:#27aeae">ab</span><span style="color:#27aeae">}</span><span style="color:#0099ff;font-weight:bold">c</span>
0313 <span style="color:#0099ff;font-weight:bold">\ a</span>
0314 <span style="color:#0099ff;font-weight:bold">!a</span>
0315 <span style="color:#0099ff;font-weight:bold">{ab}[</span>
0316 <span style="color:#2980b9">{a</span><span style="color:#3f8058">,</span><span style="color:#2980b9">b}</span><span style="color:#0099ff;font-weight:bold">[</span>
0317 <span style="color:#f44f4f">'a'</span><span style="color:#0099ff;font-weight:bold">[</span>
0318 <span style="color:#0099ff;font-weight:bold">\ [</span>
0319 <span style="color:#0099ff;font-weight:bold">!a[</span>
0320 <span style="color:#0099ff;font-weight:bold">a{}d</span>
0321 <span style="color:#0099ff;font-weight:bold">a{bc}d</span>
0322 <span style="color:#0099ff;font-weight:bold">a</span><span style="color:#2980b9">{b</span><span style="color:#3f8058">,</span><span style="color:#2980b9">c}</span><span style="color:#0099ff;font-weight:bold">d</span>
0323 <span style="color:#0099ff;font-weight:bold">a</span><span style="color:#f44f4f">'b'</span><span style="color:#0099ff;font-weight:bold">c</span>
0324 <span style="color:#0099ff;font-weight:bold">a</span><span style="color:#27aeae">$</span><span style="color:#27aeae">bc</span>
0325 <span style="color:#0099ff;font-weight:bold">a</span><span style="color:#27aeae">${</span><span style="color:#27aeae">bc</span><span style="color:#27aeae">}</span><span style="color:#0099ff;font-weight:bold">d</span>
0326 <span style="color:#0099ff;font-weight:bold">a\ b</span>
0327 <span style="color:#0099ff;font-weight:bold">a!b</span>
0328 <span style="color:#0099ff;font-weight:bold">a{}[</span>
0329 <span style="color:#0099ff;font-weight:bold">a{bc}[</span>
0330 <span style="color:#0099ff;font-weight:bold">a</span><span style="color:#2980b9">{b</span><span style="color:#3f8058">,</span><span style="color:#2980b9">c}</span><span style="color:#0099ff;font-weight:bold">[</span>
0331 <span style="color:#0099ff;font-weight:bold">a</span><span style="color:#f44f4f">'b'</span><span style="color:#0099ff;font-weight:bold">[</span>
0332 <span style="color:#0099ff;font-weight:bold">a\ [</span>
0333 <span style="color:#0099ff;font-weight:bold">a!b[</span>
0334 
0335 <span style="color:#7a7c7d"># commands + params</span>
0336 <span style="color:#0099ff;font-weight:bold">shortopt</span> <span style="color:#2980b9">-ol</span> <span style="color:#2980b9">-f</span>/fd/fd <span style="color:#2980b9">-hfd</span>/fds <span style="color:#2980b9">-</span> <span style="color:#2980b9">-ol</span><span style="color:#f44f4f">'a'</span><span style="color:#2980b9">b</span> <span style="color:#2980b9">-f</span><span style="color:#f44f4f">'a'</span>/fd/fd <span style="color:#2980b9">-h</span><span style="color:#f44f4f">'a'</span><span style="color:#2980b9">fd</span>/fds
0337 <span style="color:#0099ff;font-weight:bold">longopt</span> <span style="color:#2980b9">--long-a</span> <span style="color:#2980b9">--long-b</span><span style="color:#3f8058">=</span>value <span style="color:#2980b9">--file</span><span style="color:#3f8058">=</span><span style="color:#27ae60">*</span> <span style="color:#2980b9">--file</span><span style="color:#3f8058">=</span>file<span style="color:#27ae60">*</span> <span style="color:#2980b9">--file</span><span style="color:#3f8058">=</span>dir/file
0338 <span style="color:#0099ff;font-weight:bold">longopt</span> <span style="color:#2980b9">--long-a</span><span style="color:#f44f4f">'a'</span><span style="color:#2980b9">b</span> <span style="color:#2980b9">--long</span><span style="color:#f44f4f">'a'</span><span style="color:#2980b9">-b</span><span style="color:#3f8058">=</span>value <span style="color:#2980b9">--fi</span><span style="color:#f44f4f">'a'</span><span style="color:#2980b9">le</span><span style="color:#3f8058">=</span><span style="color:#27ae60">*</span>
0339 <span style="color:#0099ff;font-weight:bold">noopt</span> 3 3d <span style="color:#2980b9">-f</span> <span style="color:#2980b9">--</span> <span style="color:#2980b9">-f</span> <span style="color:#2980b9">--xx</span> dir/file
0340 <span style="color:#0099ff;font-weight:bold">opt</span> param#nocomment ab<span style="color:#f44f4f">'a'</span>cd [[ param ]] } { ~a .a <span style="color:#7a7c7d">#comments</span>
0341 <span style="color:#0099ff;font-weight:bold">path</span> path/file dir/ / // 3/f a@/ <span style="color:#f44f4f">'a'</span>/b d/<span style="color:#f44f4f">'a'</span>b a\ d/f f/f<span style="color:#2980b9">\</span>
0342 ile
0343 <span style="color:#0099ff;font-weight:bold">path</span> ~ ~/ ~a/ . .. ./a ../a
0344 <span style="color:#0099ff;font-weight:bold">path</span> /path/<span style="color:#27ae60">*</span> /path/f<span style="color:#27ae60">*</span> /path/f@ /path/f<span style="color:#27ae60">@(|)</span> {a/b} a{b}/c a/b{c} a/{b} a/{b}c
0345 <span style="color:#0099ff;font-weight:bold">glob</span> <span style="color:#27ae60">?</span> <span style="color:#27ae60">*</span> <span style="color:#27ae60">?</span>f <span style="color:#27ae60">*</span>f f<span style="color:#27ae60">*</span> f<span style="color:#27ae60">?</span> <span style="color:#27ae60">**</span>/ ~/<span style="color:#27ae60">*</span> ~<span style="color:#27ae60">*</span> /path/f<span style="color:#27ae60">*</span> <span style="color:#f44f4f">'a'</span><span style="color:#27ae60">*</span> <span style="color:#f44f4f">'a'</span>f/<span style="color:#27ae60">?</span>
0346 <span style="color:#0099ff;font-weight:bold">extglob</span> @ <span style="color:#27ae60">@(*)</span> <span style="color:#27ae60">@(</span>f<span style="color:#27ae60">*|</span>f<span style="color:#27ae60">??(</span>f<span style="color:#27ae60">))</span> f<span style="color:#27ae60">!(+(?(@(*(</span>f<span style="color:#27ae60">)</span>f<span style="color:#27ae60">)</span>f<span style="color:#27ae60">)</span>f<span style="color:#27ae60">)</span>f<span style="color:#27ae60">)</span>f @<span style="color:#f44f4f">'a'</span><span style="color:#27ae60">@(|)</span> a<span style="color:#27ae60">@(?)</span>
0347 <span style="color:#0099ff;font-weight:bold">subs</span> f! f!! f!s <span style="color:#f44f4f">'a'</span>!s <span style="color:#2980b9">\(</span> <span style="color:#27aeae">$</span><span style="color:#27aeae">v</span> <span style="color:#2980b9">{a</span><span style="color:#3f8058">,</span><span style="color:#2980b9">b}</span> {a} {a}/d {a<span style="color:#2980b9">\,</span>} <span style="color:#2980b9">{a</span><span style="color:#3f8058">,</span><span style="color:#2980b9">}</span> <span style="color:#2980b9">{a</span><span style="color:#3f8058">,</span><span style="color:#2980b9">\}</span><span style="color:#3f8058">,</span><span style="color:#2980b9">b}</span> ds/<span style="color:#2980b9">{a</span><span style="color:#3f8058">,</span><span style="color:#2980b9">b}</span>sa/s
0348 <span style="color:#0099ff;font-weight:bold">2</span> <span style="color:#2980b9">-</span> f <span style="color:#2980b9">-f</span>
0349 <span style="color:#0099ff;font-weight:bold">!a</span> <span style="color:#2980b9">-f</span>
0350 <span style="color:#f44f4f">'a'</span> <span style="color:#2980b9">-f</span>
0351 <span style="color:#27aeae">$</span><span style="color:#27aeae">a</span> <span style="color:#2980b9">-f</span>
0352 <span style="color:#27ae60">! </span><span style="color:#0099ff;font-weight:bold">cmd</span>
0353 
0354 <span style="color:#7a7c7d"># coproc command (#460301)</span>
0355 <span style="color:#7f8c8d">coproc</span> <span style="color:#8e44ad">ls</span> thisfiledoesntexist <span style="color:#f67400">2</span><span style="color:#3f8058">>&amp;</span><span style="color:#f67400">1</span>
0356 <span style="color:#7f8c8d">coproc</span> <span style="font-weight:bold">{</span> <span style="color:#8e44ad">ls</span> thisfiledoesntexist<span style="font-weight:bold">;</span> <span style="color:#7f8c8d">read</span><span style="font-weight:bold">;</span> <span style="font-weight:bold">}</span> <span style="color:#f67400">2</span><span style="color:#3f8058">>&amp;</span><span style="color:#f67400">1</span>
0357 <span style="color:#7f8c8d">coproc</span> mycoproc <span style="font-weight:bold">{</span> <span style="color:#8e44ad">awk</span> <span style="color:#f44f4f">'{print "foo" $0;fflush()}'</span><span style="font-weight:bold">;</span> <span style="font-weight:bold">}</span> <span style="color:#3f8058">>&amp;</span><span style="color:#f67400">3</span>
0358 
0359 <span style="color:#7a7c7d"># redirections (prefix)</span>
0360 <span style="color:#3f8058">&lt;&lt;&lt;</span>s <span style="color:#8e44ad">cat</span>
0361 <span style="color:#3f8058">&lt;&lt;&lt;</span><span style="color:#f44f4f">'s'</span> <span style="color:#8e44ad">cat</span>
0362 <span style="color:#3f8058">&lt;&lt;&lt;</span><span style="color:#f44f4f">'s'</span>s <span style="color:#8e44ad">cat</span>
0363 <span style="color:#3f8058">&lt;&lt;&lt;</span>s<span style="color:#f44f4f">'s'</span>s <span style="color:#8e44ad">cat</span>
0364 <span style="color:#3f8058">&lt;&lt;&lt;</span>s<span style="color:#27aeae">${</span><span style="color:#27aeae">s</span><span style="color:#27aeae">}</span>s <span style="color:#8e44ad">cat</span>
0365 <span style="color:#3f8058">&lt;&lt;&lt;</span> s<span style="color:#27aeae">${</span><span style="color:#27aeae">s</span><span style="color:#27aeae">}</span>s <span style="color:#8e44ad">cat</span>
0366 <span style="color:#3f8058">>&amp;</span><span style="color:#f67400">2</span> <span style="color:#8e44ad">cat</span>
0367 <span style="color:#3f8058">&lt;</span>f <span style="color:#8e44ad">cat</span>
0368 <span style="color:#3f8058">&lt;</span> f <span style="color:#8e44ad">cat</span>
0369 <span style="color:#f67400">2</span><span style="color:#3f8058">></span>3 <span style="color:#8e44ad">cat</span>
0370 <span style="color:#f67400">2</span><span style="color:#3f8058">>&amp;</span><span style="color:#f67400">3</span> <span style="color:#8e44ad">cat</span>
0371 <span style="color:#f67400">2</span><span style="color:#3f8058">>&amp;</span> <span style="color:#f67400">3</span> <span style="color:#8e44ad">cat</span>
0372 <span style="color:#f67400">2</span><span style="color:#3f8058">></span>f <span style="color:#8e44ad">cat</span>
0373 <span style="color:#3f8058">&amp;></span>f <span style="color:#8e44ad">cat</span>
0374 
0375 <span style="color:#3f8058">&lt;&lt;&lt;</span><span style="color:#7a7c7d"># comment</span>
0376 <span style="color:#3f8058">&lt;</span><span style="color:#7a7c7d"># comment</span>
0377 <span style="color:#3f8058">></span><span style="color:#7a7c7d"># comment</span>
0378 <span style="color:#3f8058">&lt;&lt;&lt;</span> <span style="color:#7a7c7d"># comment</span>
0379 <span style="color:#3f8058">&lt;</span> <span style="color:#7a7c7d"># comment</span>
0380 <span style="color:#3f8058">></span> <span style="color:#7a7c7d"># comment</span>
0381 
0382 <span style="color:#7a7c7d"># redirections</span>
0383 <span style="color:#8e44ad">cat</span> f<span style="color:#3f8058">></span>2
0384 <span style="color:#8e44ad">cat</span> d/f<span style="color:#3f8058">></span>2
0385 <span style="color:#8e44ad">cat</span> d/f <span style="color:#3f8058">></span>2
0386 <span style="color:#8e44ad">cat</span> d/f <span style="color:#3f8058">>&amp;</span> <span style="color:#f67400">2</span>
0387 <span style="color:#8e44ad">cat</span> <span style="color:#3f8058">></span>2 d/f
0388 <span style="color:#8e44ad">cat</span> <span style="color:#3f8058">></span> 2
0389 <span style="color:#8e44ad">cat</span> <span style="color:#3f8058">&lt;(</span><span style="color:#7f8c8d">echo</span><span style="color:#3f8058">)</span> <span style="color:#3f8058">&lt;(</span><span style="color:#7f8c8d">echo</span> a<span style="color:#3f8058">)</span> <span style="color:#3f8058">&lt;(</span><span style="color:#7f8c8d">echo</span> a/f<span style="color:#3f8058">)</span> <span style="color:#3f8058">&lt;(</span><span style="color:#7f8c8d">echo</span> <span style="color:#3f8058">)</span> <span style="color:#3f8058">&lt;(</span><span style="color:#7f8c8d">echo</span> a <span style="color:#3f8058">)</span> <span style="color:#3f8058">&lt;(</span><span style="color:#7f8c8d">echo</span> a/f <span style="color:#3f8058">)</span>
0390 <span style="color:#8e44ad">cat</span> <span style="color:#f67400">2</span><span style="color:#3f8058">>&amp;</span><span style="color:#f67400">1</span> <span style="color:#3f8058">&amp;></span>f <span style="color:#3f8058">&amp;>></span>f <span style="color:#f67400">2</span><span style="color:#3f8058">&lt;&amp;</span><span style="color:#f67400">1</span><span style="font-weight:bold">-</span> <span style="color:#f67400">2</span><span style="color:#3f8058">&lt;></span>f <span style="color:#f67400">2</span><span style="color:#3f8058">&lt;&lt;heredoc</span>
0391 <span style="color:#f44f4f">bla bla</span>
0392 <span style="color:#3f8058">heredoc</span>
0393 <span style="color:#3f8058">&lt;&lt;-'h'</span> <span style="color:#8e44ad">cat</span>
0394 <span style="color:#f44f4f">bla</span>
0395 <span style="color:#3f8058">h</span>
0396 <span style="color:#3f8058">&lt;&lt;"'"</span> <span style="color:#8e44ad">cat</span>
0397 <span style="color:#f44f4f">bla</span>
0398 <span style="color:#3f8058">'</span>
0399 <span style="color:#8e44ad">cat</span> <span style="color:#3f8058">&lt;&lt;heredoc</span>
0400 <span style="color:#f44f4f">bla bla</span>
0401 <span style="color:#3f8058">heredoc</span>
0402 <span style="color:#8e44ad">cat</span> <span style="color:#3f8058">&lt;&lt;heredoc</span> <span style="color:#2980b9">-a</span>
0403 <span style="color:#f44f4f">bla bla</span>
0404 <span style="color:#3f8058">heredoc</span>
0405 <span style="color:#27aeae">r</span><span style="color:#3f8058">=</span><span style="color:#27aeae">$(</span><span style="color:#0099ff;font-weight:bold">xxx</span> <span style="color:#27aeae">$</span><span style="color:#27aeae">@</span> <span style="color:#f67400">2</span><span style="color:#3f8058">>&amp;</span><span style="color:#f67400">1</span><span style="color:#27aeae">)</span>
0406 
0407 <span style="color:#8e44ad">cat</span> <span style="color:#3f8058">&lt;&lt;&lt;</span><span style="color:#7a7c7d"># comment</span>
0408 <span style="color:#8e44ad">cat</span> <span style="color:#3f8058">&lt;</span><span style="color:#7a7c7d"># comment</span>
0409 <span style="color:#8e44ad">cat</span> <span style="color:#3f8058">></span><span style="color:#7a7c7d"># comment</span>
0410 <span style="color:#8e44ad">cat</span> <span style="color:#3f8058">&lt;&lt;&lt;</span> <span style="color:#7a7c7d"># comment</span>
0411 <span style="color:#8e44ad">cat</span> <span style="color:#3f8058">&lt;</span> <span style="color:#7a7c7d"># comment</span>
0412 <span style="color:#8e44ad">cat</span> <span style="color:#3f8058">></span> <span style="color:#7a7c7d"># comment</span>
0413 
0414 <span style="color:#7a7c7d"># branches</span>
0415 <span style="color:#8e44ad">cat</span> a<span style="font-weight:bold">|</span><span style="color:#8e44ad">cat</span>
0416 <span style="color:#8e44ad">cat</span> a<span style="font-weight:bold">&amp;</span><span style="color:#8e44ad">cat</span>
0417 <span style="color:#8e44ad">cat</span> a<span style="font-weight:bold">||</span><span style="color:#8e44ad">cat</span>
0418 <span style="color:#8e44ad">cat</span> a<span style="font-weight:bold">&amp;&amp;</span><span style="color:#8e44ad">cat</span>
0419 <span style="color:#8e44ad">cat</span> a<span style="font-weight:bold">;</span><span style="color:#8e44ad">cat</span>
0420 <span style="color:#8e44ad">cat</span> a <span style="font-weight:bold">|</span> <span style="color:#8e44ad">cat</span>
0421 <span style="color:#8e44ad">cat</span> a <span style="font-weight:bold">&amp;</span> <span style="color:#8e44ad">cat</span>
0422 <span style="color:#8e44ad">cat</span> a <span style="font-weight:bold">||</span> <span style="color:#8e44ad">cat</span>
0423 <span style="color:#8e44ad">cat</span> a <span style="font-weight:bold">&amp;&amp;</span> <span style="color:#8e44ad">cat</span>
0424 <span style="color:#8e44ad">cat</span> a <span style="font-weight:bold">;</span> <span style="color:#8e44ad">cat</span>
0425 <span style="color:#8e44ad">cat</span> a<span style="color:#f44f4f">'a'</span><span style="font-weight:bold">;</span><span style="color:#8e44ad">cat</span>
0426 
0427 <span style="color:#7a7c7d"># substitutions</span>
0428 <span style="color:#7f8c8d">echo</span> <span style="color:#f44f4f">''</span> <span style="color:#f44f4f">'a'</span> <span style="color:#f44f4f">'\'</span> <span style="color:#f44f4f">""</span> <span style="color:#f44f4f">"a"</span> <span style="color:#f44f4f">"</span><span style="color:#2980b9">\\</span><span style="color:#f44f4f">"</span> <span style="color:#f44f4f">"</span><span style="color:#27aeae">$</span><span style="color:#27aeae">a</span><span style="color:#f44f4f">"</span> <span style="color:#f44f4f">"a""a"</span><span style="color:#f44f4f">'a''a'</span> a<span style="color:#f44f4f">'b'</span>c a<span style="color:#f44f4f">"b"</span>c a<span style="color:#f44f4f">$'</span><span style="color:#2980b9">\n</span><span style="color:#f44f4f">'</span>c
0429 <span style="color:#7f8c8d">echo</span> a!bc a{a}b a<span style="color:#2980b9">{b</span><span style="color:#3f8058">,</span><span style="color:#2980b9">c}</span>d a<span style="color:#2980b9">{b</span><span style="color:#3f8058">,</span><span style="color:#2980b9">{d</span><span style="color:#3f8058">,</span><span style="color:#2980b9">e}}</span>d a<span style="color:#2980b9">\ </span>b
0430 <span style="color:#7f8c8d">echo</span> a<span style="color:#27aeae">$</span><span style="color:#27aeae">bc</span> a<span style="color:#27aeae">$</span><span style="color:#27aeae">b</span>/c a<span style="color:#27aeae">${</span><span style="color:#27aeae">b</span><span style="color:#27aeae">}</span>c a<span style="color:#27aeae">$((</span><span style="color:#27aeae">b</span><span style="color:#3f8058">-</span><span style="color:#f67400">3</span><span style="color:#27aeae">))</span>c a<span style="color:#27aeae">$(</span><span style="color:#0099ff;font-weight:bold">b</span><span style="color:#27aeae">)</span>c a<span style="color:#27aeae">$(</span><span style="color:#0099ff;font-weight:bold">a</span> b c<span style="color:#27aeae">)</span>c
0431 <span style="color:#7f8c8d">echo</span> <span style="color:#27aeae">${</span><span style="color:#27aeae">a</span><span style="color:#3f8058">[*]</span><span style="color:#27aeae">}</span> <span style="color:#27aeae">${</span><span style="color:#27aeae">a</span><span style="color:#3f8058">[@]</span><span style="color:#27aeae">}</span> <span style="color:#27aeae">${</span><span style="color:#27aeae">a</span><span style="color:#3f8058">[</span><span style="color:#27aeae">${</span><span style="color:#27aeae">b</span><span style="color:#27aeae">}</span><span style="color:#3f8058">]</span><span style="color:#27aeae">}</span> <span style="color:#27aeae">${</span><span style="color:#27aeae">a</span><span style="color:#3f8058">:-</span>x<span style="color:#27aeae">$</span><span style="color:#27aeae">z</span><span style="color:#27aeae">}</span> <span style="color:#27aeae">${</span><span style="color:#27aeae">a</span><span style="color:#3f8058">-</span>x<span style="color:#27aeae">}</span> <span style="color:#27aeae">${</span><span style="color:#27aeae">a</span><span style="color:#3f8058">/</span><span style="color:#da4453">g</span><span style="color:#27aeae">}</span> <span style="color:#27aeae">${</span><span style="color:#27aeae">a</span><span style="color:#3f8058">//</span><span style="color:#da4453">f</span><span style="color:#3f8058">/</span>f<span style="color:#27aeae">}</span> <span style="color:#27aeae">${</span><span style="color:#27aeae">a</span><span style="color:#3f8058">//</span><span style="color:#da4453">f</span><span style="color:#27ae60">*</span><span style="color:#3f8058">/</span>f<span style="color:#27ae60">*</span><span style="color:#27aeae">}</span>
0432 <span style="color:#7f8c8d">echo</span> <span style="color:#27aeae">${</span><span style="color:#27aeae">a</span><span style="color:#3f8058">^^</span><span style="color:#da4453">l</span><span style="color:#27ae60">*</span><span style="color:#27aeae">}</span> <span style="color:#27aeae">${</span><span style="color:#27aeae">a</span><span style="color:#3f8058">,</span><span style="color:#27aeae">}</span> <span style="color:#27aeae">${</span><span style="color:#3f8058">!</span><span style="color:#27aeae">a</span><span style="color:#27aeae">}</span> <span style="color:#27aeae">${</span><span style="color:#3f8058">#</span><span style="color:#27aeae">a</span><span style="color:#3f8058">[</span><span style="color:#f67400">1</span><span style="color:#3f8058">]</span><span style="color:#27aeae">}</span> <span style="color:#27aeae">${</span><span style="color:#27aeae">a</span><span style="color:#3f8058">:</span><span style="color:#f67400">1</span><span style="color:#3f8058">:</span><span style="color:#27aeae">$</span><span style="color:#27aeae">b</span><span style="color:#27aeae">}</span> <span style="color:#27aeae">$((</span><span style="color:#3f8058">++</span><span style="color:#27aeae">i</span><span style="font-weight:bold">,</span><span style="color:#27aeae">i</span><span style="color:#3f8058">--</span><span style="color:#27aeae">))</span>
0433 <span style="color:#7f8c8d">echo</span> <span style="color:#f44f4f">"</span><span style="color:#27aeae">${</span><span style="color:#27aeae">var</span><span style="color:#3f8058">#</span>lo<span style="color:#27ae60">+(</span>r<span style="color:#27ae60">)</span>em<span style="color:#27aeae">}</span><span style="color:#f44f4f">"</span> x <span style="color:#f44f4f">"</span><span style="color:#27aeae">${</span><span style="color:#27aeae">var</span><span style="color:#3f8058">#</span><span style="color:#27ae60">+(</span>r<span style="color:#27ae60">)</span>em<span style="color:#27aeae">}</span><span style="color:#f44f4f">"</span> x
0434 <span style="color:#7f8c8d">echo</span> <span style="color:#f44f4f">"</span><span style="color:#27aeae">${</span><span style="color:#27aeae">var</span><span style="color:#3f8058">#</span>refs/heads<span style="color:#27aeae">}</span><span style="color:#f44f4f">"</span> x <span style="color:#f44f4f">"</span><span style="color:#27aeae">${</span><span style="color:#27aeae">var</span><span style="color:#3f8058">#</span>refs<span style="color:#27aeae">}</span><span style="color:#f44f4f">"</span> x
0435 
0436 <span style="color:#7f8c8d">[</span> a <span style="color:#7f8c8d">]</span>
0437 <span style="color:#7f8c8d">[</span> <span style="color:#27ae60">-f</span> f<span style="color:#f44f4f">'f'</span>f <span style="color:#7f8c8d">]</span>
0438 <span style="color:#7f8c8d">[</span> <span style="color:#27ae60">-f</span> f]<span style="color:#f44f4f">'f'</span>f] <span style="color:#7f8c8d">]</span>
0439 <span style="color:#7f8c8d">[</span> <span style="color:#27ae60">-t</span> 13 <span style="color:#7f8c8d">]</span>
0440 <span style="color:#7f8c8d">[</span> <span style="color:#27ae60">-t</span> 13] <span style="color:#7f8c8d">]</span>
0441 <span style="color:#7f8c8d">[</span> <span style="color:#27ae60">-t</span> 13] <span style="color:#7f8c8d">]</span>
0442 <span style="color:#7f8c8d">[</span> <span style="color:#27ae60">-v</span> abc <span style="color:#7f8c8d">]</span>
0443 <span style="color:#7f8c8d">[</span> <span style="color:#27ae60">-z</span> abc <span style="color:#7f8c8d">]</span>
0444 <span style="color:#7f8c8d">[</span> abc <span style="color:#27ae60">-ef</span> abc <span style="color:#7f8c8d">]</span>
0445 <span style="color:#7f8c8d">[</span> abc <span style="color:#27ae60">-ef</span> abc <span style="color:#7f8c8d">]</span>
0446 <span style="color:#7f8c8d">[</span> abc-ef <span style="color:#27ae60">-ef</span> abc-ef <span style="color:#7f8c8d">]</span>
0447 <span style="color:#7f8c8d">[</span> abc <span style="color:#27ae60">==</span> abc <span style="color:#7f8c8d">]</span>
0448 <span style="color:#7f8c8d">[</span> abc <span style="color:#da4453;text-decoration:underline">&lt;</span> abc <span style="color:#7f8c8d">]</span>
0449 <span style="color:#7f8c8d">[</span> abc <span style="color:#27ae60">-eq</span> abc <span style="color:#7f8c8d">]</span>
0450 <span style="font-weight:bold">[[</span> abc <span style="color:#27ae60">-eq</span> abc <span style="font-weight:bold">]]</span>
0451 <span style="color:#7f8c8d">[</span> 1+2 <span style="color:#27ae60">-eq</span> 1+2 <span style="color:#7f8c8d">]</span>
0452 <span style="font-weight:bold">[[</span> 1+2 <span style="color:#27ae60">-eq</span> 1+2 <span style="font-weight:bold">]]</span>
0453 <span style="color:#7f8c8d">[</span> a <span style="color:#27ae60">=</span> b <span style="color:#da4453;text-decoration:underline">c</span> <span style="color:#0099ff;font-weight:bold">]</span>
0454 <span style="font-weight:bold">[[</span> a <span style="color:#27ae60">=</span> b <span style="color:#da4453;text-decoration:underline">c</span> <span style="color:#0099ff;font-weight:bold">]]</span>
0455 <span style="color:#7f8c8d">[</span> <span style="color:#27ae60">-z</span> 1 <span style="color:#27ae60">-a</span> 1 <span style="color:#27ae60">-eq</span> 1 <span style="color:#7f8c8d">]</span>
0456 <span style="color:#7f8c8d">[</span> 2 <span style="color:#27ae60">-eq</span> 1 <span style="color:#27ae60">-o</span> 1 <span style="color:#27ae60">-eq</span> 1 <span style="color:#7f8c8d">]</span>
0457 <span style="font-weight:bold">[[</span> x <span style="color:#27ae60">=~</span> <span style="color:#da4453">a</span><span style="color:#3f8058">(</span><span style="color:#da4453">b c</span><span style="color:#27ae60">|</span><span style="color:#3f8058">$)</span><span style="color:#f44f4f">' '</span><span style="color:#27aeae">{</span><span style="color:#f67400">1</span><span style="color:#3f8058">,</span><span style="color:#27aeae">}</span><span style="color:#3f8058">[</span><span style="color:#da4453">a</span><span style="color:#3f8058">[.</span><span style="color:#27aeae">digit</span><span style="color:#3f8058">.]</span><span style="color:#3f8058">]</span> <span style="font-weight:bold">]]</span>
0458 <span style="font-weight:bold">[[</span> x <span style="color:#27ae60">=~</span> <span style="color:#3f8058">[</span> <span style="color:#da4453;text-decoration:underline">] </span><span style="color:#0099ff;font-weight:bold">]]</span>
0459 <span style="font-weight:bold">[[</span> x <span style="color:#27ae60">=~</span> <span style="color:#3f8058">([</span><span style="color:#da4453"> </span><span style="color:#3f8058">])</span> <span style="font-weight:bold">]]</span>
0460 <span style="font-weight:bold">[[</span> x <span style="color:#27ae60">=~</span> <span style="color:#3f8058">[</span> <span style="font-weight:bold">]]</span>
0461 <span style="font-weight:bold">[[</span> x <span style="color:#27ae60">=~</span> <span style="color:#3f8058">([)</span> <span style="font-weight:bold">]]</span>
0462 <span style="font-weight:bold">[[</span> <span style="color:#3f8058">(</span>a <span style="color:#27ae60">=~</span> <span style="color:#da4453">a</span><span style="color:#3f8058">)</span> <span style="font-weight:bold">]]</span>
0463 <span style="font-weight:bold">[[</span> a <span style="color:#27ae60">=~</span> <span style="color:#da4453">a</span> <span style="font-weight:bold">||</span> a <span style="color:#27ae60">-eq</span> 2 <span style="font-weight:bold">]]</span>
0464 <span style="font-weight:bold">[[</span> <span style="color:#3f8058">(</span>a <span style="color:#27ae60">=~</span> <span style="color:#da4453">a</span><span style="color:#3f8058">)</span> <span style="font-weight:bold">||</span> a <span style="color:#27ae60">-eq</span> 2 <span style="font-weight:bold">]]</span>
0465 <span style="font-weight:bold">[[</span> <span style="color:#3f8058">(</span>0 <span style="color:#27ae60">-le</span> <span style="color:#27aeae">$</span><span style="color:#27aeae">b</span><span style="color:#3f8058">)</span> <span style="font-weight:bold">]]</span>
0466 <span style="font-weight:bold">[[</span> <span style="color:#3f8058">(</span> 0 <span style="color:#27ae60">-le</span> <span style="color:#27aeae">$</span><span style="color:#27aeae">b</span> <span style="color:#3f8058">)</span> <span style="font-weight:bold">]]</span>
0467 <span style="font-weight:bold">[[</span> <span style="color:#3f8058">(</span> 0 <span style="color:#27ae60">-le</span> <span style="color:#27aeae">$</span><span style="color:#27aeae">b</span> <span style="font-weight:bold">||</span> <span style="color:#27aeae">$</span><span style="color:#27aeae">b</span> <span style="color:#27ae60">-le</span> 100 <span style="color:#3f8058">)</span> <span style="font-weight:bold">]]</span>
0468 <span style="font-weight:bold">[[</span> a<span style="color:#27ae60">&lt;</span>b <span style="font-weight:bold">]]</span>
0469 <span style="font-weight:bold">[[</span> a <span style="color:#27ae60">&lt;</span>b <span style="font-weight:bold">]]</span>
0470 <span style="font-weight:bold">[[</span> a<span style="color:#27ae60">&lt;</span> b <span style="font-weight:bold">]]</span>
0471 <span style="font-weight:bold">[[</span> a <span style="color:#27ae60">&lt;</span> b <span style="font-weight:bold">]]</span>
0472 <span style="font-weight:bold">[[</span><span style="color:#3f8058">(</span><span style="color:#27ae60">!</span> <span style="color:#27ae60">-d</span> .<span style="color:#3f8058">)</span><span style="font-weight:bold">]]</span>
0473 <span style="font-weight:bold">[[</span> <span style="color:#27ae60">!</span> <span style="color:#27ae60">-d</span> . <span style="font-weight:bold">]]</span>
0474 <span style="font-weight:bold">[[</span> <span style="color:#27ae60">!</span><span style="color:#3f8058">(</span><span style="color:#27ae60">-d</span> .<span style="color:#3f8058">)</span> <span style="font-weight:bold">]]</span>
0475 <span style="font-weight:bold">[[</span> <span style="color:#27ae60">-f</span> a <span style="font-weight:bold">||</span> <span style="color:#27ae60">-f</span> b <span style="font-weight:bold">]]</span>
0476 <span style="font-weight:bold">[[</span> <span style="color:#27ae60">-f</span> a<span style="font-weight:bold">||</span><span style="color:#27ae60">-f</span> b <span style="font-weight:bold">]]</span>
0477 <span style="font-weight:bold">[[</span> <span style="color:#27ae60">!</span> <span style="color:#3f8058">(</span>a <span style="color:#27ae60">-eq</span> b<span style="color:#3f8058">)</span> <span style="font-weight:bold">]]</span>
0478 <span style="color:#7f8c8d">[</span> <span style="color:#27ae60">-d</span> <span style="font-weight:bold">`</span><span style="color:#7f8c8d">echo</span> .<span style="font-weight:bold">`</span>] <span style="color:#7f8c8d">]</span>
0479 <span style="font-weight:bold">[[</span> <span style="color:#27ae60">-d</span> <span style="font-weight:bold">`</span><span style="color:#7f8c8d">echo</span> .<span style="font-weight:bold">`</span>]] <span style="font-weight:bold">]]</span>
0480 <span style="font-weight:bold">[[</span> a <span style="color:#27ae60">!=</span> b <span style="font-weight:bold">&amp;&amp;</span> <span style="color:#27aeae">${</span><span style="color:#27aeae">a</span><span style="color:#27aeae">}</span>a <span style="color:#27ae60">=</span> b<span style="color:#27aeae">${</span><span style="color:#27aeae">b</span><span style="color:#27aeae">}</span> <span style="font-weight:bold">]]</span>
0481 <span style="font-weight:bold">[[</span>
0482   1 <span style="color:#27ae60">-eq</span> 2
0483 <span style="font-weight:bold">]]</span>
0484 <span style="font-weight:bold">[[</span> -<span style="font-weight:bold">&amp;&amp;</span>- <span style="font-weight:bold">]]</span>
0485 <span style="font-weight:bold">[[</span> <span style="font-weight:bold">]]</span>
0486 <span style="font-weight:bold">[[</span> <span style="color:#27ae60">-f</span> <span style="font-weight:bold">]]</span>
0487 <span style="font-weight:bold">[[</span> <span style="color:#27ae60">-f</span> [0-9a] <span style="font-weight:bold">]]</span>
0488 <span style="font-weight:bold">[[</span> ?*[0-9] <span style="color:#27ae60">=</span> <span style="color:#27ae60">[^</span><span style="color:#da4453">0</span><span style="color:#27ae60">-</span><span style="color:#da4453">9</span><span style="color:#27ae60">]</span> <span style="font-weight:bold">]]</span>
0489 <span style="font-weight:bold">[[</span> -f <span style="color:#27ae60">=</span> <span style="color:#27ae60">?*[</span><span style="color:#da4453">0</span><span style="color:#27ae60">-</span><span style="color:#da4453">9</span><span style="color:#27ae60">]</span> <span style="font-weight:bold">]]</span>
0490 <span style="font-weight:bold">[[</span> ?*[0-9] <span style="color:#27ae60">=</span> <span style="color:#27ae60">?*[</span><span style="color:#da4453">0</span><span style="color:#27ae60">-</span><span style="color:#da4453">9</span><span style="color:#27ae60">]</span> <span style="font-weight:bold">]]</span>
0491 <span style="font-weight:bold">[[</span> a/sa[s <span style="color:#27ae60">=</span> dsad<span style="color:#27ae60">?*[</span><span style="color:#da4453">0</span><span style="color:#27ae60">-</span><span style="color:#da4453">9</span><span style="color:#27ae60">]</span>dsa<span style="color:#27aeae">$</span><span style="color:#27aeae">ds</span> <span style="font-weight:bold">]]</span>
0492 <span style="font-weight:bold">[[</span> a/sa[s <span style="color:#27ae60">=</span> dsad<span style="color:#27ae60">?*[</span><span style="color:#da4453">0</span><span style="color:#27ae60">-</span><span style="color:#da4453">9</span><span style="color:#27ae60">]</span>ds/a<span style="color:#27aeae">$</span><span style="color:#27aeae">ds</span> <span style="font-weight:bold">]]</span>
0493 <span style="font-weight:bold">[[</span> a <span style="color:#27ae60">=~</span> <span style="color:#3f8058">[</span><span style="color:#da4453">12</span><span style="color:#3f8058">]</span><span style="color:#da4453">a</span><span style="color:#3f8058">([</span><span style="color:#da4453">!d</span><span style="color:#3f8058">]</span><span style="color:#da4453">a</span><span style="color:#27ae60">?</span><span style="color:#da4453">s</span><span style="color:#3f8058">[</span><span style="color:#da4453">x</span><span style="color:#3f8058">[:</span><span style="color:#27aeae">alnum</span><span style="color:#3f8058">:]</span><span style="color:#3f8058">]</span><span style="color:#27ae60">|</span><span style="color:#da4453">d</span><span style="color:#27ae60">?</span><span style="color:#3f8058">)</span><span style="color:#da4453">p</span> <span style="font-weight:bold">]]</span>
0494 
0495 <span style="font-weight:bold">[[</span> <span style="color:#7a7c7d">#comm1</span>
0496  <span style="color:#7a7c7d">#comm2</span>
0497  p[1] <span style="color:#27ae60">==</span> p<span style="color:#27ae60">[</span><span style="color:#da4453">2</span><span style="color:#27ae60">]</span>
0498  <span style="color:#7a7c7d">#comm3</span>
0499  <span style="color:#7a7c7d">#comm4</span>
0500 <span style="font-weight:bold">]]</span>
0501 
0502 <span style="font-weight:bold">[[</span> <span style="color:#7a7c7d">#comm1</span>
0503  <span style="color:#7a7c7d">#comm2</span>
0504  <span style="color:#27ae60">-f</span> p[2]
0505  <span style="color:#7a7c7d">#comm3</span>
0506  <span style="color:#7a7c7d">#comm4</span>
0507 <span style="font-weight:bold">]]</span>
0508 
0509 <span style="font-weight:bold">((</span><span style="color:#f67400">3</span><span style="color:#3f8058">+</span><span style="color:#f67400">1</span><span style="color:#3f8058">+</span><span style="color:#27aeae">a</span><span style="color:#3f8058">+</span><span style="color:#27aeae">$</span><span style="color:#27aeae">c</span><span style="color:#3f8058">*</span>(<span style="color:#27aeae">x</span>) <span style="color:#3f8058">&amp;</span> <span style="color:#f67400">0x43422fd</span><span style="color:#3f8058">+</span><span style="color:#f67400">03</span><span style="color:#3f8058">-</span><span style="color:#f67400">0</span><span style="color:#da4453;text-decoration:underline">85</span><span style="color:#3f8058">/</span><span style="color:#2980b9">23#</span><span style="color:#f67400">D9a@_</span><span style="color:#3f8058">^</span><span style="color:#f67400">8</span><span style="font-weight:bold">))</span>
0510 <span style="font-weight:bold">((</span><span style="color:#f67400">1</span><span style="color:#3f8058">/</span>(<span style="color:#f67400">2</span><span style="color:#3f8058">-</span>(<span style="color:#27aeae">a</span><span style="color:#3f8058">-</span><span style="color:#f67400">4</span>))<span style="font-weight:bold">))</span>
0511 
0512 <span style="color:#7a7c7d"># they are not arithmetic evaluations...</span>
0513 <span style="font-weight:bold">((</span><span style="color:#0099ff;font-weight:bold">cmd</span> <span style="font-weight:bold">&amp;&amp;</span> <span style="color:#0099ff;font-weight:bold">cmd</span><span style="font-weight:bold">)</span> <span style="font-weight:bold">||</span> <span style="color:#0099ff;font-weight:bold">cmd</span><span style="font-weight:bold">)</span>
0514 <span style="color:#27aeae">$(</span><span style="font-weight:bold">(</span><span style="color:#0099ff;font-weight:bold">cmd</span> <span style="font-weight:bold">&amp;&amp;</span> <span style="color:#0099ff;font-weight:bold">cmd</span><span style="font-weight:bold">)</span> <span style="font-weight:bold">||</span> <span style="color:#0099ff;font-weight:bold">cmd</span><span style="color:#27aeae">)</span>
0515 <span style="font-weight:bold">((</span><span style="color:#27aeae">cmd</span> <span style="font-weight:bold">&amp;&amp;</span>
0516 <span style="color:#27aeae">cmd</span><span style="font-weight:bold">)</span> <span style="font-weight:bold">||</span> <span style="color:#0099ff;font-weight:bold">cmd</span><span style="font-weight:bold">)</span>
0517 <span style="color:#27aeae">$((</span><span style="color:#27aeae">cmd</span> <span style="font-weight:bold">&amp;&amp;</span>
0518 <span style="color:#27aeae">cmd</span><span style="color:#27aeae">)</span> <span style="font-weight:bold">||</span> <span style="color:#0099ff;font-weight:bold">cmd</span><span style="color:#27aeae">)</span>
0519 
0520 <span style="font-weight:bold">{</span> <span style="color:#7f8c8d">echo</span>
0521     <span style="color:#7f8c8d">echo</span>
0522 <span style="font-weight:bold">}</span>
0523 <span style="font-weight:bold">{</span> <span style="color:#7f8c8d">echo</span> <span style="font-weight:bold">;</span> <span style="font-weight:bold">}</span>
0524 <span style="font-weight:bold">(</span><span style="color:#7f8c8d">echo</span> <span style="font-weight:bold">;</span> <span style="color:#7f8c8d">echo</span><span style="font-weight:bold">)</span>
0525 <span style="font-weight:bold">(</span><span style="color:#7f8c8d">echo</span>
0526     <span style="color:#7f8c8d">echo</span><span style="font-weight:bold">)</span>
0527 <span style="font-weight:bold">(</span><span style="color:#7f8c8d">echo</span> a<span style="font-weight:bold">)</span>
0528 <span style="font-weight:bold">({</span> <span style="color:#7f8c8d">echo</span> plop<span style="font-weight:bold">;</span><span style="font-weight:bold">})</span>
0529 <span style="color:#7f8c8d">[</span> a <span style="color:#27ae60">-eq</span> 2 <span style="color:#7f8c8d">]</span> <span style="font-weight:bold">||</span> <span style="color:#7f8c8d">[</span> a <span style="color:#27ae60">-eq</span> 2] <span style="color:#7f8c8d">]</span> <span style="font-weight:bold">&amp;&amp;</span> <span style="font-weight:bold">[[</span> a <span style="color:#27ae60">-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:#27ae60">!=</span> b <span style="font-weight:bold">]]</span><span style="font-weight:bold">;</span>
0530 <span style="color:#7f8c8d">[</span> a <span style="color:#27ae60">-eq</span> 2 <span style="color:#7f8c8d">]</span><span style="font-weight:bold">||</span><span style="color:#7f8c8d">[</span> a <span style="color:#27ae60">-eq</span> 2] <span style="color:#7f8c8d">]</span><span style="font-weight:bold">&amp;&amp;</span><span style="font-weight:bold">[[</span> a <span style="color:#27ae60">-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:#27ae60">!=</span> b <span style="font-weight:bold">]]</span><span style="font-weight:bold">;</span>
0531 <span style="color:#7f8c8d">test</span> a <span style="color:#2980b9">-eq</span> b
0532 
0533 <span style="color:#7a7c7d"># functions</span>
0534 <span style="color:#8e44ad">a()</span> <span style="font-weight:bold">{</span> <span style="color:#7f8c8d">echo</span> x<span style="font-weight:bold">;</span> <span style="font-weight:bold">}</span>
0535 <span style="color:#8e44ad">a  ()</span> <span style="font-weight:bold">{</span> <span style="color:#7f8c8d">echo</span> x<span style="font-weight:bold">;</span> <span style="font-weight:bold">}</span>
0536 <span style="font-weight:bold">function</span><span style="color:#8e44ad"> f</span> <span style="font-weight:bold">{</span> <span style="color:#7f8c8d">echo</span> x<span style="font-weight:bold">;</span> <span style="font-weight:bold">}</span>
0537 <span style="color:#8e44ad">kde.org()</span> <span style="font-weight:bold">{</span> <span style="color:#7f8c8d">echo</span> x<span style="font-weight:bold">;</span> <span style="font-weight:bold">}</span>
0538 <span style="color:#8e44ad">--func()</span> <span style="font-weight:bold">{</span> <span style="color:#7f8c8d">echo</span> x<span style="font-weight:bold">;</span> <span style="font-weight:bold">}</span>
0539 
0540 <span style="color:#7a7c7d"># variables</span>
0541 <span style="color:#27aeae">a</span><span style="color:#3f8058">=</span><span style="color:#27aeae">(</span>a b c<span style="color:#27aeae">)</span>
0542 <span style="color:#27aeae">a</span><span style="color:#3f8058">=</span><span style="color:#f44f4f">'a'</span>
0543 <span style="color:#27aeae">a</span><span style="color:#3f8058">+=</span>b
0544 <span style="color:#27aeae">a</span><span style="color:#3f8058">[</span><span style="color:#f67400">1</span><span style="color:#3f8058">]</span><span style="color:#3f8058">=</span><span style="color:#f44f4f">'a'</span>
0545 <span style="color:#27aeae">a</span><span style="color:#3f8058">[</span><span style="color:#27aeae">$</span><span style="color:#27aeae">i</span><span style="color:#3f8058">]</span><span style="color:#3f8058">=</span><span style="color:#f44f4f">'x'</span>
0546 <span style="color:#27aeae">a</span><span style="color:#3f8058">[</span><span style="color:#27aeae">$((</span>
0547     <span style="color:#f67400">2</span><span style="color:#3f8058">+</span><span style="color:#f67400">4</span>
0548 <span style="color:#27aeae">))</span><span style="color:#3f8058">]</span><span style="color:#3f8058">=</span><span style="color:#f44f4f">'x'</span>
0549 <span style="color:#27aeae">a</span><span style="color:#3f8058">=</span><span style="color:#27aeae">(</span><span style="color:#3f8058">[</span>a<span style="color:#3f8058">]</span><span style="color:#27aeae">=</span>2 <span style="font-weight:bold">`</span><span style="color:#7f8c8d">echo</span><span style="font-weight:bold">`</span> -s <span style="color:#da4453;text-decoration:underline">></span> <span style="color:#f44f4f">'ds'</span><span style="color:#27aeae">)</span>
0550 <span style="color:#27aeae">a</span><span style="color:#3f8058">=</span><span style="color:#27aeae">(</span><span style="color:#7a7c7d">#comment</span>
0551 value#nocomment <span style="color:#7a7c7d">#comment)</span>
0552 <span style="color:#27aeae">)</span>
0553 <span style="color:#27aeae">a</span><span style="color:#3f8058">=</span>a <span style="color:#8e44ad">cat</span>
0554 <span style="color:#27aeae">a</span><span style="color:#3f8058">=</span><span style="font-weight:bold">`</span><span style="color:#8e44ad">ls</span><span style="font-weight:bold">`</span> <span style="color:#8e44ad">cat</span>
0555 
0556 <span style="color:#7a7c7d"># errors</span>
0557 <span style="color:#0099ff;font-weight:bold">a</span> a<span style="color:#da4453;text-decoration:underline">(</span><span style="color:#0099ff;font-weight:bold">s</span><span style="font-weight:bold">)</span> <span style="color:#0099ff;font-weight:bold">a</span>
0558 
0559 <span style="color:#7a7c7d"># control structure</span>
0560 <span style="color:#fdbc4b;font-weight:bold">for</span> name <span style="font-weight:bold">in</span> a b c <span style="color:#2980b9">{d</span><span style="color:#3f8058">,</span><span style="color:#2980b9">e}</span> <span style="font-weight:bold">;</span> <span style="color:#fdbc4b;font-weight:bold">do</span> <span style="color:#7f8c8d">echo</span> <span style="font-weight:bold">;</span> <span style="color:#fdbc4b;font-weight:bold">done</span>
0561 <span style="color:#fdbc4b;font-weight:bold">for</span> name<span style="font-weight:bold">;</span> <span style="color:#fdbc4b;font-weight:bold">do</span> <span style="color:#7f8c8d">echo</span> <span style="font-weight:bold">;</span> <span style="color:#fdbc4b;font-weight:bold">done</span>
0562 <span style="color:#fdbc4b;font-weight:bold">for</span> name <span style="color:#fdbc4b;font-weight:bold">do</span> <span style="color:#7f8c8d">echo</span> <span style="font-weight:bold">;</span> <span style="color:#fdbc4b;font-weight:bold">done</span>
0563 <span style="color:#fdbc4b;font-weight:bold">for</span> <span style="font-weight:bold">((</span><span style="color:#27aeae">i</span><span style="color:#3f8058">=</span><span style="color:#f67400">0</span><span style="font-weight:bold">;</span><span style="color:#27aeae">i</span><span style="color:#3f8058">&lt;</span><span style="color:#f67400">5</span><span style="font-weight:bold">;</span><span style="color:#3f8058">++</span><span style="color:#27aeae">i</span><span style="font-weight:bold">))</span> <span style="font-weight:bold">;</span> <span style="color:#fdbc4b;font-weight:bold">do</span> <span style="color:#7f8c8d">echo</span> <span style="color:#27aeae">$</span><span style="color:#27aeae">i</span> <span style="font-weight:bold">;</span> <span style="color:#fdbc4b;font-weight:bold">done</span>
0564 <span style="color:#fdbc4b;font-weight:bold">select</span> name <span style="font-weight:bold">in</span> a <span style="font-weight:bold">;</span> <span style="color:#fdbc4b;font-weight:bold">do</span> <span style="color:#7f8c8d">echo</span> <span style="font-weight:bold">;</span> <span style="color:#fdbc4b;font-weight:bold">done</span>
0565 <span style="color:#fdbc4b;font-weight:bold">select</span> name<span style="font-weight:bold">;</span> <span style="color:#fdbc4b;font-weight:bold">do</span> <span style="color:#7f8c8d">echo</span> <span style="font-weight:bold">;</span> <span style="color:#fdbc4b;font-weight:bold">done</span>
0566 <span style="color:#fdbc4b;font-weight:bold">if</span> <span style="color:#7f8c8d">:</span> <span style="font-weight:bold">;</span> <span style="color:#fdbc4b;font-weight:bold">then</span> <span style="color:#7f8c8d">echo</span> <span style="font-weight:bold">;</span> <span style="color:#fdbc4b;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="color:#fdbc4b;font-weight:bold">then</span> <span style="color:#7f8c8d">echo</span> <span style="font-weight:bold">;</span> <span style="color:#fdbc4b;font-weight:bold">else</span> <span style="color:#7f8c8d">echo</span> <span style="font-weight:bold">;</span> <span style="color:#fdbc4b;font-weight:bold">fi</span>
0567 <span style="color:#fdbc4b;font-weight:bold">while</span> <span style="color:#7f8c8d">:</span> <span style="font-weight:bold">||</span> <span style="color:#7f8c8d">:</span> <span style="font-weight:bold">;</span> <span style="color:#fdbc4b;font-weight:bold">do</span> <span style="color:#7f8c8d">echo</span> <span style="font-weight:bold">;</span> <span style="color:#fdbc4b;font-weight:bold">done</span>
0568 <span style="color:#fdbc4b;font-weight:bold">until</span> <span style="color:#7f8c8d">:</span> <span style="font-weight:bold">;</span> <span style="color:#7f8c8d">:</span> <span style="font-weight:bold">;</span> <span style="color:#fdbc4b;font-weight:bold">do</span> <span style="color:#7f8c8d">echo</span> <span style="font-weight:bold">;</span> <span style="color:#fdbc4b;font-weight:bold">done</span>
0569 <span style="color:#fdbc4b;font-weight:bold">case</span> a <span style="font-weight:bold">in</span> <span style="color:#da4453">a</span><span style="font-weight:bold">)</span> <span style="color:#fdbc4b;font-weight:bold">esac</span>
0570 <span style="color:#fdbc4b;font-weight:bold">case</span> a <span style="font-weight:bold">in</span> <span style="color:#da4453">a</span><span style="font-weight:bold">)</span> <span style="color:#7f8c8d">echo</span> <span style="font-weight:bold">;</span> <span style="color:#fdbc4b;font-weight:bold">esac</span>
0571 <span style="color:#fdbc4b;font-weight:bold">case</span> pwd <span style="font-weight:bold">in</span> <span style="font-weight:bold">(</span><span style="color:#da4453">patt1</span><span style="font-weight:bold">)</span> <span style="color:#7f8c8d">echo</span> <span style="font-weight:bold">;</span> <span style="color:#7f8c8d">echo</span> <span style="color:#fdbc4b;font-weight:bold">;;</span> <span style="font-weight:bold">(</span><span style="color:#da4453">patt</span><span style="color:#27ae60">*</span><span style="font-weight:bold">)</span> <span style="color:#7f8c8d">echo</span> <span style="color:#fdbc4b;font-weight:bold">;;&amp;</span> <span style="color:#da4453">patt</span><span style="color:#27ae60">?</span><span style="font-weight:bold">|</span><span style="color:#da4453">patt</span><span style="font-weight:bold">)</span> <span style="color:#7f8c8d">echo</span> <span style="color:#fdbc4b;font-weight:bold">;&amp;</span>
0572 <span style="color:#da4453">patt</span><span style="font-weight:bold">)</span> <span style="color:#7f8c8d">echo</span> <span style="color:#fdbc4b;font-weight:bold">;;</span> <span style="color:#fdbc4b;font-weight:bold">esac</span>
0573 
0574 <span style="color:#fdbc4b;font-weight:bold">for</span> name <span style="font-weight:bold">in</span> a
0575  <span style="color:#0099ff;font-weight:bold">b</span> c <span style="font-weight:bold">;</span>
0576 <span style="color:#fdbc4b;font-weight:bold">do</span>
0577 <span style="color:#7f8c8d">echo</span>
0578 <span style="color:#fdbc4b;font-weight:bold">done</span>
0579 
0580 <span style="color:#fdbc4b;font-weight:bold">case</span> a <span style="font-weight:bold">in</span>
0581   <span style="color:#da4453">a</span><span style="color:#2980b9">\(</span> <span style="font-weight:bold">|</span> <span style="color:#da4453">b</span><span style="color:#27ae60">*</span><span style="color:#da4453">c</span><span style="color:#27ae60">?</span> <span style="font-weight:bold">)</span> <span style="color:#7f8c8d">echo</span>
0582   <span style="font-weight:bold">(</span><span style="color:#0099ff;font-weight:bold">b</span><span style="color:#27aeae">$</span><span style="color:#27aeae">c</span><span style="font-weight:bold">)</span> <span style="color:#7a7c7d"># no pattern</span>
0583   <span style="color:#fdbc4b;font-weight:bold">;;</span>
0584   <span style="font-weight:bold">(</span><span style="color:#da4453">b</span><span style="color:#27aeae">$</span><span style="color:#27aeae">c</span><span style="font-weight:bold">)</span> <span style="color:#fdbc4b;font-weight:bold">;;</span>
0585   <span style="color:#7a7c7d"># no pattern</span>
0586   <span style="font-weight:bold">(</span><span style="color:#da4453">b</span><span style="color:#27aeae">$</span><span style="color:#27aeae">c</span><span style="font-weight:bold">)</span>
0587 <span style="color:#fdbc4b;font-weight:bold">esac</span>
0588 
0589 <span style="color:#fdbc4b;font-weight:bold">case</span> <span style="color:#f44f4f">"</span><span style="color:#27aeae">$</span><span style="color:#27aeae">1</span><span style="color:#f44f4f">"</span> <span style="font-weight:bold">in</span>
0590  <span style="color:#f44f4f">"a"</span><span style="font-weight:bold">)</span> <span style="color:#0099ff;font-weight:bold">run_a</span><span style="font-weight:bold">|&amp;</span><span style="color:#0099ff;font-weight:bold">a</span><span style="color:#fdbc4b;font-weight:bold">;;</span>
0591  <span style="color:#f44f4f">"b"</span><span style="font-weight:bold">)</span> <span style="color:#0099ff;font-weight:bold">run_b</span><span style="color:#fdbc4b;font-weight:bold">;;</span>
0592  <span style="color:#f44f4f">"c"</span><span style="font-weight:bold">)</span> <span style="color:#0099ff;font-weight:bold">run_c</span><span style="color:#fdbc4b;font-weight:bold">;;</span>
0593  <span style="color:#27ae60">*</span><span style="font-weight:bold">)</span> <span style="color:#7f8c8d">echo</span> <span style="color:#f44f4f">"Plase choose between 'a', 'b' or 'c'"</span> <span style="font-weight:bold">&amp;&amp;</span> <span style="color:#7f8c8d">exit</span> 1<span style="color:#fdbc4b;font-weight:bold">;;</span>
0594 <span style="color:#fdbc4b;font-weight:bold">esac</span>
0595 </pre></body></html>