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