507 lines
54 KiB
HTML
507 lines
54 KiB
HTML
<!DOCTYPE html>
|
|
<html><head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
|
<title>highlight.fish</title>
|
|
<meta name="generator" content="KF5::SyntaxHighlighting - Definition (Fish) - Theme (Breeze Dark)"/>
|
|
</head><body style="background-color:#232629;color:#cfcfc2"><pre>
|
|
<span style="color:#7a7c7d">### Comments</span>
|
|
<span style="color:#7a7c7d"># </span><span style="color:#ca9219;background-color:#451e1a;font-weight:bold">TODO</span>
|
|
<span style="color:#7a7c7d"># </span><span style="color:#2980b9;background-color:#153042">BEGIN</span>
|
|
<span style="color:#7a7c7d"># fg sfg sfh sft</span>
|
|
<span style="color:#7a7c7d"># </span><span style="color:#2980b9;background-color:#153042">END</span>
|
|
<span style="color:#7a7c7d">#</span>
|
|
<span style="color:#7a7c7d"># text in (parenthesis) is ok, (even</span>
|
|
<span style="color:#7a7c7d"># over several lines)</span>
|
|
<span style="color:#7a7c7d"># escaped \) and \( are ok</span>
|
|
<span style="color:#7a7c7d"># an unbalanced single </span><span style="color:#da4453;text-decoration:underline">)</span> is not ok
|
|
<span style="color:#7a7c7d"># This is due to fish comment handling in command substitutions</span>
|
|
<span style="color:#7a7c7d"># which cannot reasonably handled by kate syntax highlighting</span>
|
|
|
|
|
|
<span style="color:#7a7c7d">### Commands and paths</span>
|
|
<span style="color:#8e44ad">ls</span> -l <span style="font-weight:bold">|</span><span style="color:#8e44ad">sort</span>
|
|
<span style="color:#8e44ad">ls</span> -1
|
|
<span style="color:#0099ff;font-weight:bold">/usr/bin/</span><span style="color:#8e44ad">ls</span> -l /usr/local/test/ -xyz <span style="color:#7a7c7d"># option as indicator of CommandArgs context</span>
|
|
<span style="color:#0099ff;font-weight:bold">./bin/</span><span style="color:#8e44ad">ls</span> -l /usr/abc<span style="font-weight:bold">**</span>/tes<span style="font-weight:bold">?</span>/lkhlk -xyz <span style="color:#7a7c7d"># tabulator as separator</span>
|
|
<span style="color:#0099ff;font-weight:bold">../bin/</span><span style="color:#8e44ad">ls</span> -l /usr/abc<span style="font-weight:bold">**</span>/tes<span style="font-weight:bold">?</span>/lkhlk
|
|
<span style="color:#0099ff;font-weight:bold">~/bin/</span><span style="color:#8e44ad">ls</span> -l ../usr/lo<span style="font-weight:bold">\ </span>cal/test
|
|
<span style="color:#0099ff;font-weight:bold">~user/bin/</span><span style="color:#8e44ad">ls</span> -l /usr/<span style="color:#3daee9">{</span>local<span style="font-weight:bold">,</span>remote<span style="color:#3daee9">}</span><span style="color:#da4453;text-decoration:underline">}</span>/test<span style="font-weight:bold">|</span><span style="color:#8e44ad">cat</span> <span style="color:#7a7c7d"># show error</span>
|
|
<span style="color:#0099ff;font-weight:bold">/usr/bin/../lib/</span><span style="color:#8e44ad">ls</span> -l /usr/local/test.<span style="font-weight:bold">???</span><span style="font-weight:bold">|</span><span style="color:#8e44ad">cat</span>
|
|
<span style="color:#0099ff;font-weight:bold">/usr/bin\ sdfg/</span><span style="color:#8e44ad">ls</span> -l /usr/local/test.<span style="font-weight:bold">*</span>
|
|
<span style="color:#0099ff;font-weight:bold">usr/bin/</span><span style="color:#8e44ad">other</span> -l <span style="font-weight:bold">~user</span>/local/test
|
|
<span style="color:#0099ff;font-weight:bold">\ usr/bin/</span><span style="color:#8e44ad">other</span> -l <span style="font-weight:bold">~user</span>/local/test
|
|
<span style="color:#0099ff;font-weight:bold">/usr/bin/</span><span style="color:#8e44ad">lsother</span>
|
|
<span style="color:#0099ff;font-weight:bold">../test/root/bin/</span><span style="color:#8e44ad">fish</span> -c <span style="color:#f44f4f">"echo </span><span style="color:#27aeae">$t8</span><span style="color:#f44f4f">"</span>
|
|
<span style="color:#0099ff;font-weight:bold">test/root/bin/</span><span style="color:#8e44ad">fish</span> -c <span style="color:#f44f4f">"echo </span><span style="color:#27aeae">$t8</span><span style="color:#f44f4f">"</span>
|
|
<span style="color:#0099ff;font-weight:bold">u?r/bin/</span><span style="color:#8e44ad">ls</span>
|
|
<span style="color:#0099ff;font-weight:bold">usr/b?n/</span><span style="color:#8e44ad">ls</span>
|
|
<span style="color:#0099ff;font-weight:bold">u*</span><span style="color:#8e44ad">ls</span> <span style="color:#7a7c7d"># doesn't work, but ok</span>
|
|
<span style="color:#f44f4f">"ls"</span> /tmp/testtest <span style="color:#7a7c7d"># Quotes in commands are expanded</span>
|
|
<span style="color:#0099ff;font-weight:bold">/us</span><span style="color:#f44f4f">"r/bin"</span><span style="color:#0099ff;font-weight:bold">/xy/</span><span style="color:#8e44ad">ls</span>
|
|
<span style="color:#8e44ad">abcd</span><span style="color:#da4453;text-decoration:underline">$</span><span style="color:#8e44ad">a</span> <span style="color:#7a7c7d"># show error</span>
|
|
<span style="color:#8e44ad">other</span><span style="color:#da4453;text-decoration:underline">)</span> abc <span style="color:#7a7c7d"># show error</span>
|
|
<span style="color:#da4453;text-decoration:underline"><</span>other abc <span style="color:#7a7c7d"># show error</span>
|
|
<span style="color:#8e44ad">other</span><span style="color:#3f8058">></span> abc <span style="color:#7a7c7d"># ok</span>
|
|
<span style="color:#8e44ad">oth</span><span style="color:#3f8058">></span>er abc <span style="color:#7a7c7d"># ok</span>
|
|
<span style="color:#8e44ad">ot</span><span style="color:#da4453;text-decoration:underline">(</span><span style="color:#8e44ad">her</span><span style="color:#da4453;text-decoration:underline">)</span> abc <span style="color:#7a7c7d"># show error</span>
|
|
|
|
<span style="color:#8e44ad">-cmd</span>
|
|
<span style="color:#8e44ad">déjà-vu</span>
|
|
|
|
<span style="color:#8e44ad">ls</span> /ho<span style="color:#f44f4f">"me/te"</span>st<span style="color:#f44f4f">'user'</span>/abc<span style="color:#27aeae">$dir</span><span style="color:#2980b9">[3]</span>/ab<span style="color:#3daee9">(</span><span style="color:#7f8c8d">echo</span> cdefg<span style="color:#3daee9">)</span>cd/xyz
|
|
<span style="color:#8e44ad">cat\ alog</span> -abc
|
|
<span style="color:#8e44ad">ls</span> path_not_detected
|
|
<span style="color:#8e44ad">ls</span> <span style="font-weight:bold">*</span> no_path
|
|
<span style="color:#8e44ad">ls</span> <span style="font-weight:bold">*</span>path_detected
|
|
<span style="color:#0099ff;font-weight:bold">ls/</span>
|
|
<span style="color:#8e44ad">ls</span><span style="font-weight:bold">;</span><span style="color:#7f8c8d">echo</span> xy
|
|
<span style="color:#8e44ad">flex++</span>
|
|
<span style="color:#7f8c8d">echo</span> [abc] abc
|
|
|
|
<span style="color:#7a7c7d">#specials</span>
|
|
<span style="color:#7f8c8d">command</span> -s <span style="color:#8e44ad">ls</span>
|
|
<span style="color:#7f8c8d">builtin</span> --names <span style="color:#7f8c8d">jobs</span>
|
|
<span style="color:#7f8c8d">exec</span> <span style="color:#8e44ad">bash</span>
|
|
<span style="color:#7f8c8d">exec</span> <span style="color:#27aeae">$test</span>
|
|
<span style="color:#7f8c8d">set</span> -e <span style="color:#27aeae">i</span><span style="color:#2980b9">[-1]</span>
|
|
<span style="color:#7f8c8d">set</span> <span style="color:#27aeae">test1</span><span style="color:#2980b9">[-1..1]</span> <span style="color:#27aeae">$test</span><span style="font-weight:bold">;</span> <span style="color:#7f8c8d">echo</span> <span style="color:#27aeae">$test1</span>
|
|
<span style="color:#7f8c8d">set</span> <span style="color:#27aeae">test1</span><span style="color:#2980b9">[1..</span><span style="color:#27aeae">$n</span><span style="color:#2980b9">]</span> <span style="color:#27aeae">$test</span><span style="font-weight:bold">;</span> <span style="color:#7f8c8d">echo</span> <span style="color:#27aeae">$test1</span>
|
|
<span style="color:#7f8c8d">set</span> <span style="color:#27aeae">test1</span><span style="color:#2980b9">[</span><span style="color:#27aeae">$n</span><span style="color:#2980b9">..1]</span> <span style="color:#27aeae">$test</span><span style="font-weight:bold">;</span> <span style="color:#7f8c8d">echo</span> <span style="color:#27aeae">$test1</span>
|
|
<span style="color:#7f8c8d">set</span> <span style="color:#27aeae">test1</span><span style="color:#2980b9">[2..4 -2..-4]</span> <span style="color:#27aeae">$test1</span><span style="color:#2980b9">[4..2 -4..-2]</span><span style="font-weight:bold">;</span> <span style="color:#7f8c8d">echo</span> <span style="color:#27aeae">$test1</span>
|
|
<span style="color:#7f8c8d">set</span> <span style="color:#27aeae">test1</span><span style="color:#2980b9">[2..4 -2..-4]</span>[1] <span style="color:#27aeae">$test1</span><span style="color:#2980b9">[4..2 -4..-2][1]</span>
|
|
<span style="color:#7a7c7d"># ~~~ invalid</span>
|
|
<span style="color:#7f8c8d">set</span> <span style="color:#27aeae">test1</span><span style="font-weight:bold">\</span>
|
|
<span style="color:#2980b9">[2..4 -2..-4]</span><span style="font-weight:bold">\</span>
|
|
[1] a
|
|
<span style="color:#7a7c7d">#~~ invalid</span>
|
|
<span style="color:#7f8c8d">set</span> <span style="color:#27aeae">test1</span> <span style="font-weight:bold">\</span>
|
|
<span style="color:#7a7c7d">#bla bla</span>
|
|
a b c
|
|
<span style="color:#7f8c8d">set</span> <span style="color:#27aeae">page_url</span> http://fishshell.com/docs/<span style="color:#27aeae">$version_string</span>/<span style="color:#27aeae">$fish_help_page</span> <span style="color:#7a7c7d"># ???</span>
|
|
<span style="color:#7f8c8d">string</span> <span style="color:#7f8c8d">split</span> . example.com
|
|
<span style="color:#7f8c8d">set</span> <span style="color:#27aeae">b</span> <span style="color:#3daee9">(</span><span style="color:#7f8c8d">string</span> <span style="color:#7f8c8d">repeat</span> -n 512 x<span style="color:#3daee9">)</span>
|
|
|
|
<span style="color:#7f8c8d">read</span> -gi <span style="color:#27aeae">test</span> <span style="color:#7a7c7d"># ok</span>
|
|
<span style="color:#7f8c8d">read</span> -gi <span style="color:#27aeae">$test</span>
|
|
<span style="color:#7f8c8d">read</span> -gi <span style="color:#f44f4f">"test"</span>
|
|
<span style="color:#7f8c8d">read</span> -gi <span style="color:#3daee9">(</span><span style="color:#7f8c8d">echo</span> test<span style="color:#3daee9">)</span>
|
|
|
|
<span style="color:#7f8c8d">set</span> <span style="color:#27aeae">x</span> <span style="color:#3daee9">(</span><span style="color:#7f8c8d">string</span> <span style="color:#7f8c8d">split</span> --max 1 --right / <span style="color:#3daee9">(</span><span style="color:#7f8c8d">status</span> current-filename<span style="color:#3daee9">)</span> <span style="color:#7a7c7d">#Comment test</span><span style="color:#3daee9">)</span>
|
|
<span style="color:#7f8c8d">set</span> <span style="color:#27aeae">test</span> <span style="color:#3daee9">(</span><span style="color:#7f8c8d">exec</span> <span style="color:#27aeae">$cmd</span><span style="color:#3daee9">)</span>
|
|
|
|
<span style="color:#7a7c7d"># direct path</span>
|
|
<span style="color:#7f8c8d">test</span> <span style="color:#3f8058">-d </span><span style="color:#27aeae">$tmpldir</span>/resources
|
|
|
|
<span style="color:#7a7c7d">### Options</span>
|
|
<span style="color:#8e44ad">cat</span> -l /usr/local/test<span style="color:#3f8058">></span>logfile
|
|
<span style="color:#8e44ad">ls</span> --longopt<span style="color:#3f8058">=</span>/test
|
|
<span style="color:#8e44ad">ls</span> -l<span style="color:#f44f4f">"kasdflakjs"</span> -r/usr/test -x../test/../bla -z<span style="font-weight:bold">~xyz</span>/hello
|
|
|
|
<span style="color:#7a7c7d">### Arguments</span>
|
|
<span style="color:#7f8c8d">echo</span> abc<span style="color:#f44f4f">"def"</span>ghi
|
|
<span style="color:#7f8c8d">echo</span> abc/def
|
|
<span style="color:#7f8c8d">echo</span> abc[de]
|
|
<span style="color:#7f8c8d">echo</span> abc<span style="color:#3daee9">(</span><span style="color:#7f8c8d">echo</span> def<span style="color:#3daee9">)</span>ghi
|
|
<span style="color:#7f8c8d">echo</span> abc<span style="color:#3daee9">{</span>de<span style="font-weight:bold">,</span>f<span style="color:#3daee9">}</span>ghi
|
|
|
|
<span style="color:#7a7c7d"># Path Detection</span>
|
|
<span style="color:#7f8c8d">cd</span> abc<span style="font-weight:bold">*</span>efghi <span style="color:#7a7c7d"># fish assumes * is glob -> path</span>
|
|
<span style="color:#7f8c8d">cd</span> abc<span style="font-weight:bold">?</span>efghi
|
|
<span style="color:#7f8c8d">cd</span> ..
|
|
<span style="color:#7f8c8d">cd</span> .. <span style="color:#7a7c7d">#</span>
|
|
<span style="color:#7f8c8d">cd</span> .
|
|
<span style="color:#7f8c8d">cd</span> . <span style="color:#7a7c7d">#</span>
|
|
<span style="color:#7f8c8d">cd</span> <span style="font-weight:bold">~</span>
|
|
<span style="color:#7f8c8d">cd</span> <span style="font-weight:bold">~abc</span>/abc/<span style="font-weight:bold">*</span>.txt
|
|
<span style="color:#7f8c8d">cd</span> ./abc
|
|
<span style="color:#7f8c8d">cd</span> ../abc
|
|
<span style="color:#7f8c8d">cd</span> <span style="font-weight:bold">\ </span>abc/tmp<span style="font-weight:bold">\ </span>.txt
|
|
|
|
<span style="color:#7f8c8d">test</span> .. abc
|
|
|
|
<span style="color:#7a7c7d">### Escapes</span>
|
|
<span style="color:#8e44ad">touch</span> a<span style="font-weight:bold">\?</span>bc<span style="font-weight:bold">\[\]</span>ax<span style="font-weight:bold">\~</span>dsf<span style="font-weight:bold">\#</span>gsd<span style="font-weight:bold">\a</span>f<span style="font-weight:bold">\(\)</span>dg<span style="font-weight:bold">\?</span>sd<span style="font-weight:bold">\ </span>fg<span style="font-weight:bold">\b</span>hh<span style="font-weight:bold">\%</span>j<span style="font-weight:bold">\$</span>k<span style="font-weight:bold">\\</span>l<span style="font-weight:bold">\?</span>sed<span style="font-weight:bold">\*</span>jk<span style="font-weight:bold">\></span>hj<span style="font-weight:bold">\<</span>hou<span style="font-weight:bold">\&</span>h<span style="font-weight:bold">\;</span>hgkj<span style="font-weight:bold">\^</span>kj<span style="font-weight:bold">\"</span>kjh<span style="font-weight:bold">\'</span>jhg
|
|
<span style="color:#8e44ad">touch</span> sdf<span style="font-weight:bold">\xa5</span>lh<span style="font-weight:bold">\Xb7</span>kll<span style="font-weight:bold">\157</span>j<span style="font-weight:bold">\15</span>8hk<span style="font-weight:bold">\ua47b</span>z<span style="font-weight:bold">\U123b5678</span>fs<span style="font-weight:bold">\cx</span>zdfga
|
|
|
|
<span style="color:#8e44ad">touch</span> <span style="color:#f44f4f">"a\?bc\[\]a"</span> <span style="color:#7a7c7d"># no escaping in Quotes</span>
|
|
<span style="color:#8e44ad">touch</span> fgh\y1 <span style="color:#7a7c7d"># \y is no escape sequence in fish, show it as normal text like fish itself</span>
|
|
|
|
<span style="color:#7a7c7d">### Builtins</span>
|
|
<span style="color:#7f8c8d">. </span>hallo
|
|
<span style="color:#7f8c8d">source</span> hallo
|
|
<span style="color:#7f8c8d">eval</span> <span style="color:#8e44ad">ls</span> . /tmp
|
|
<span style="color:#7f8c8d">eval</span> <span style="color:#8e44ad">ls</span> .../tmp
|
|
<span style="color:#7f8c8d">eval</span> <span style="color:#27aeae">$var</span>
|
|
<span style="color:#7f8c8d">eval</span> <span style="color:#8e44ad">abc</span>
|
|
<span style="color:#7f8c8d">eval</span> <span style="color:#3daee9">{</span>l<span style="font-weight:bold">,</span>a<span style="color:#3daee9">}</span><span style="color:#8e44ad">s</span> <span style="color:#7a7c7d"># lists ./as. colours not ok, but we cut here</span>
|
|
<span style="color:#7f8c8d">eval</span> <span style="color:#f44f4f">"echo bla"</span>
|
|
|
|
<span style="color:#7f8c8d">history</span> merge
|
|
|
|
<span style="color:#7f8c8d">true</span> <span style="font-weight:bold">;</span><span style="color:#8e44ad">ls</span>
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#3daee9">(</span><span style="color:#7f8c8d">true</span><span style="color:#3daee9">)</span>
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#3daee9">(</span><span style="color:#7f8c8d">true</span> <span style="color:#7a7c7d">#comment</span><span style="color:#3daee9">)</span>
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#3daee9">(</span><span style="color:#7f8c8d">true</span><span style="color:#3f8058">>></span>xyz/abc<span style="color:#3daee9">)</span>
|
|
<span style="color:#7f8c8d">true</span> <span style="color:#da4453;text-decoration:underline">-error </span><span style="color:#7a7c7d"># show error</span>
|
|
<span style="color:#7f8c8d">pwd</span> <span style="color:#3f8058">></span> abc
|
|
|
|
<span style="color:#7f8c8d">command</span> -s <span style="color:#8e44ad">ls</span><span style="font-weight:bold">;</span><span style="color:#8e44ad">cat</span> test
|
|
<span style="color:#7f8c8d">builtin</span> -n<span style="font-weight:bold">;</span><span style="color:#7f8c8d">builtin</span> <span style="color:#7f8c8d">echo</span>
|
|
|
|
<span style="color:#7f8c8d">complete</span> -c myprog -s o -l output -a <span style="color:#f44f4f">"yes no"</span>
|
|
<span style="color:#7f8c8d">builtin</span> <span style="color:#7f8c8d">jobs</span>
|
|
|
|
<span style="color:#7f8c8d">math</span> -s0 10.0 / 6.0
|
|
|
|
<span style="color:#7a7c7d">#special keywords as directory names:</span>
|
|
<span style="color:#0099ff;font-weight:bold">/usr/function/</span><span style="color:#8e44ad">testtest</span> /usr/function/testtest
|
|
<span style="color:#0099ff;font-weight:bold">/usr/for/</span><span style="color:#8e44ad">testtest</span> /usr/for/testtest
|
|
<span style="color:#0099ff;font-weight:bold">/usr/begin/</span><span style="color:#8e44ad">testtest</span> /usr/begin/testtest
|
|
<span style="color:#0099ff;font-weight:bold">/usr/switch/</span><span style="color:#8e44ad">testtest</span> /usr/switch/testtest
|
|
<span style="color:#0099ff;font-weight:bold">/usr/if/</span><span style="color:#8e44ad">testtest</span> /usr/if/testtest
|
|
<span style="color:#0099ff;font-weight:bold">/usr/while/</span><span style="color:#8e44ad">testtest</span> /usr/while/testtest
|
|
<span style="color:#0099ff;font-weight:bold">/usr/command/</span><span style="color:#8e44ad">testtest</span> /usr/command/testtest
|
|
<span style="color:#0099ff;font-weight:bold">/usr/builtin/</span><span style="color:#8e44ad">testtest</span> /usr/builtin/testtest
|
|
<span style="color:#0099ff;font-weight:bold">/usr/eval/</span><span style="color:#8e44ad">testtest</span> /usr/eval/testtest
|
|
<span style="color:#0099ff;font-weight:bold">/usr/exec/</span><span style="color:#8e44ad">testtest</span> /usr/exec/testtest
|
|
<span style="color:#0099ff;font-weight:bold">/usr/set/</span><span style="color:#8e44ad">testtest</span> /usr/set/testtest
|
|
<span style="color:#0099ff;font-weight:bold">/usr/test/</span><span style="color:#8e44ad">testtest</span> /usr/test/testtest
|
|
|
|
<span style="color:#7a7c7d">### test</span>
|
|
<span style="color:#7f8c8d">test</span> NUM1<span style="color:#3f8058"> -eq </span>NUM2
|
|
<span style="color:#7f8c8d">test</span> <span style="color:#3f8058">-f </span>/tmp/abc <span style="color:#3f8058">-a -e </span>/tmp/def<span style="font-weight:bold">;</span><span style="color:#8e44ad">cat</span> /tmp/abc<span style="font-weight:bold">;</span>
|
|
|
|
<span style="color:#fdbc4b;font-weight:bold">if</span> <span style="color:#7f8c8d">test</span> <span style="font-weight:bold">\(</span> <span style="color:#3f8058">-f </span>/foo <span style="color:#3f8058">-o -f </span>/bar <span style="font-weight:bold">\)</span> <span style="color:#3f8058">-a </span><span style="font-weight:bold">\(</span> <span style="color:#3f8058">-f </span>/baz <span style="color:#3f8058">-o -f </span>/bat <span style="font-weight:bold">\)</span>
|
|
<span style="color:#7f8c8d">echo</span> Success.
|
|
<span style="color:#fdbc4b;font-weight:bold">end</span>
|
|
|
|
<span style="color:#7f8c8d">[ </span>25<span style="color:#3f8058"> -eq </span><span style="color:#27aeae">$NUM2</span><span style="color:#7f8c8d"> ]</span>
|
|
<span style="color:#7f8c8d">[ </span><span style="color:#f44f4f">"abc"</span> <span style="color:#3f8058">=</span> <span style="color:#f44f4f">"</span><span style="color:#27aeae">$STRING2</span><span style="color:#f44f4f">"</span><span style="color:#7f8c8d"> ]</span>
|
|
|
|
<span style="color:#fdbc4b;font-weight:bold">if</span> <span style="color:#7f8c8d">[ </span><span style="color:#3f8058">!</span> <span style="font-weight:bold">\(</span>STRING1 <span style="color:#3f8058">!=</span> STRING2<span style="font-weight:bold">\)</span><span style="color:#7f8c8d"> ]</span><span style="font-weight:bold">;</span><span style="color:#8e44ad">ls</span><span style="font-weight:bold">;</span><span style="color:#fdbc4b;font-weight:bold">end</span>
|
|
<span style="color:#fdbc4b;font-weight:bold">if</span> <span style="color:#7f8c8d">[ </span><span style="color:#3f8058">-f </span>abc<span style="color:#7f8c8d"> ]</span><span style="color:#da4453;text-decoration:underline">#</span> <span style="color:#da4453;text-decoration:underline">show error</span>
|
|
<span style="color:#fdbc4b;font-weight:bold">end</span>
|
|
<span style="color:#fdbc4b;font-weight:bold">if</span> <span style="color:#7f8c8d">[ </span><span style="color:#3f8058">-f </span>abc<span style="color:#7f8c8d"> ]</span> <span style="color:#7a7c7d"># ok</span>
|
|
<span style="color:#fdbc4b;font-weight:bold">end</span>
|
|
|
|
<span style="color:#fdbc4b;font-weight:bold">if</span> <span style="color:#7f8c8d">[ </span><span style="color:#3f8058">!</span> <span style="font-weight:bold">\(</span>STRING1 <span style="color:#3f8058">!=</span> STRING2<span style="font-weight:bold">\)</span><span style="color:#7f8c8d"> ]</span> <span style="color:#da4453;text-decoration:underline">ls</span><span style="font-weight:bold">;</span><span style="color:#fdbc4b;font-weight:bold">end</span> <span style="color:#7a7c7d"># show error</span>
|
|
<span style="color:#fdbc4b;font-weight:bold">if</span> <span style="color:#7f8c8d">[ </span><span style="color:#f44f4f">"abc"</span> <span style="color:#3f8058">!=</span> <span style="color:#f44f4f">"def"</span><span style="color:#7f8c8d"> ]</span> <span style="color:#7a7c7d"># hallo</span>
|
|
<span style="color:#7f8c8d">echo</span> x<span style="font-weight:bold">;</span><span style="color:#fdbc4b;font-weight:bold">end</span>
|
|
|
|
<span style="color:#7a7c7d">### Redirections</span>
|
|
<span style="color:#8e44ad">ls</span> <span style="color:#3f8058"><</span> SOURCE_FILE <span style="color:#7a7c7d"># stdin</span>
|
|
<span style="color:#8e44ad">ls</span> <span style="color:#3f8058">></span> DESTINATION <span style="color:#7a7c7d"># stdout</span>
|
|
<span style="color:#8e44ad">ls</span> <span style="color:#3f8058">^</span> DESTINATION <span style="color:#7a7c7d"># stderr</span>
|
|
<span style="color:#8e44ad">ls</span> <span style="color:#3f8058">>></span> DESTINATION_FILE <span style="color:#7a7c7d"># append</span>
|
|
<span style="color:#8e44ad">ls</span> <span style="color:#3f8058">^^</span> DESTINATION_FILE <span style="color:#7a7c7d"># append</span>
|
|
<span style="color:#8e44ad">ls</span> <span style="color:#3f8058">>?</span> DESTINATION <span style="color:#7a7c7d"># noclobber</span>
|
|
<span style="color:#8e44ad">ls</span> <span style="color:#3f8058">^?</span> DESTINATION
|
|
|
|
<span style="color:#8e44ad">ls</span> <span style="color:#3f8058">^?</span> <span style="font-weight:bold">~</span>
|
|
<span style="color:#8e44ad">ls</span> <span style="color:#3f8058">^?</span> <span style="font-weight:bold">~testuser</span>/abc
|
|
<span style="color:#8e44ad">ls</span> <span style="color:#3f8058">^?</span>/DESTINATION
|
|
<span style="color:#8e44ad">ls</span> <span style="color:#3f8058">^?</span><span style="color:#da4453;text-decoration:underline">#</span>DESTINATION <span style="color:#7a7c7d"># show error</span>
|
|
|
|
<span style="color:#8e44ad">ls</span> <span style="color:#3f8058">></span> <span style="color:#27aeae">$abc</span><span style="color:#2980b9">[5]</span>
|
|
<span style="color:#8e44ad">ls</span> <span style="color:#3f8058">></span><span style="color:#f44f4f">"abc"</span>/defg<span style="color:#27aeae">$v</span>/xyz
|
|
|
|
<span style="color:#8e44ad">ls</span> <span style="color:#3f8058">></span><span style="color:#da4453;text-decoration:underline">&</span> <span style="color:#7a7c7d"># show error</span>
|
|
<span style="color:#8e44ad">ls</span> <span style="color:#3f8058">></span> <span style="color:#da4453;text-decoration:underline">&</span>1 <span style="color:#7a7c7d"># show error</span>
|
|
<span style="color:#8e44ad">ls</span> abc<span style="color:#3f8058">>&25</span> xyz /tmp/xyz <span style="color:#27aeae">$abc</span>
|
|
<span style="color:#8e44ad">ls</span> /tmp/tst<span style="color:#3f8058">>&25</span><span style="color:#da4453;text-decoration:underline">?</span> <span style="color:#7a7c7d"># show error</span>
|
|
<span style="color:#8e44ad">ls</span> /tmp/tst<span style="color:#3f8058">>&25</span> <span style="font-weight:bold">?</span> <span style="color:#7a7c7d"># ok</span>
|
|
<span style="color:#8e44ad">ls</span> <span style="color:#3f8058">3>&-</span> xyz
|
|
<span style="color:#8e44ad">ls</span> <span style="color:#3f8058">1<</span>DESTINATION
|
|
<span style="color:#7f8c8d">echo</span> Hello <span style="color:#3f8058">></span> all_output.txt <span style="color:#3f8058">^&1</span> xyz
|
|
<span style="color:#8e44ad">ls</span> <span style="color:#3f8058">2>&-</span><span style="font-weight:bold">;</span><span style="color:#7f8c8d">echo</span> end
|
|
<span style="color:#8e44ad">ls</span> xyz <span style="color:#3f8058">2>|</span><span style="color:#8e44ad">cat</span>
|
|
|
|
<span style="color:#8e44ad">ls</span><span style="color:#3f8058">></span>x
|
|
<span style="color:#8e44ad">abs</span><span style="color:#3f8058">></span>x
|
|
<span style="color:#0099ff;font-weight:bold">/bin/</span><span style="color:#8e44ad">ls</span><span style="color:#3f8058">></span>x
|
|
<span style="color:#0099ff;font-weight:bold">/bin/</span><span style="color:#8e44ad">abs</span><span style="color:#3f8058">></span>x
|
|
|
|
<span style="color:#7a7c7d">### Quoting</span>
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#f44f4f">'abcdefg'</span>
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#f44f4f">'abc</span><span style="font-weight:bold">\'</span><span style="color:#f44f4f">de</span><span style="font-weight:bold">\\</span><span style="color:#f44f4f">fg'</span>
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#f44f4f">'abc\defg'</span>
|
|
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#f44f4f">"1</span><span style="font-weight:bold">\"</span><span style="color:#f44f4f">23</span><span style="font-weight:bold">\$</span><span style="color:#f44f4f">45</span><span style="font-weight:bold">\\</span><span style="color:#f44f4f">6"</span>
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#f44f4f">'1\"23\$45</span><span style="font-weight:bold">\\</span><span style="color:#f44f4f">6'</span>
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#f44f4f">'</span>
|
|
<span style="color:#f44f4f">hallo</span>
|
|
<span style="color:#f44f4f">'</span>
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#f44f4f">"</span><span style="color:#27aeae">$i</span><span style="color:#f44f4f">: '</span><span style="color:#27aeae">$$name</span><span style="color:#2980b9">[1][</span><span style="color:#27aeae">$i</span><span style="color:#2980b9">]</span><span style="color:#f44f4f">'"</span>
|
|
|
|
|
|
<span style="color:#7a7c7d">### Piping, Pipelines and background jobs</span>
|
|
<span style="color:#8e44ad">ls</span> -l /tmp/hello <span style="color:#3f8058">1<</span>DEST<span style="font-weight:bold">|</span> <span style="color:#8e44ad">sort</span>
|
|
<span style="color:#8e44ad">comand_1</span><span style="font-weight:bold">;</span><span style="color:#8e44ad">command_2</span>
|
|
<span style="color:#8e44ad">comand_1</span> <span style="font-weight:bold">;</span><span style="color:#8e44ad">command_2</span>
|
|
<span style="color:#8e44ad">ls</span><span style="font-weight:bold">;</span><span style="color:#8e44ad">ls</span>
|
|
<span style="color:#8e44ad">run_long_job</span> <span style="font-weight:bold">&</span> <span style="color:#8e44ad">ls</span> <span style="color:#7a7c7d"># yes & is a command sequencing operator like | and ;</span>
|
|
<span style="color:#8e44ad">cat</span> foo.txt <span style="font-weight:bold">|</span> <span style="color:#8e44ad">head</span>
|
|
<span style="color:#8e44ad">make</span> fish <span style="color:#3f8058">2>|</span> <span style="color:#8e44ad">less</span> <span style="color:#7a7c7d">#show error</span>
|
|
|
|
<span style="color:#7a7c7d">### Variable Expansion</span>
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#27aeae">$PATH</span>
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#27aeae">$PATH</span><span style="color:#2980b9">[1..3]</span>
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#27aeae">$PATH</span><span style="color:#2980b9">[-1..3 5 9..15]</span>
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#27aeae">$PATH</span><span style="color:#2980b9">[</span><span style="color:#27aeae">$n</span><span style="color:#2980b9">[2]]</span>
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#27aeae">$test</span><span style="color:#2980b9">[1..</span><span style="color:#27aeae">$n</span><span style="color:#2980b9">]</span>
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#27aeae">$test</span><span style="color:#2980b9">[</span><span style="color:#27aeae">$n</span><span style="color:#2980b9">..1]</span>
|
|
<span style="color:#7f8c8d">echo</span> The plural of <span style="color:#27aeae">$WORD</span> is <span style="color:#f44f4f">"</span><span style="color:#27aeae">$WORD</span><span style="color:#f44f4f">"</span>s
|
|
<span style="color:#7f8c8d">echo</span> The plural of <span style="color:#27aeae">$WORD</span> is <span style="color:#3daee9">{</span><span style="color:#27aeae">$WORD</span><span style="color:#3daee9">}</span>s
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#27aeae">$$foo</span><span style="color:#2980b9">[</span><span style="color:#27aeae">$i</span><span style="color:#2980b9">]</span>
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#27aeae">$test</span><span style="color:#2980b9">[</span><span style="color:#3daee9">(</span><span style="color:#7f8c8d">count</span> <span style="color:#27aeae">$test</span><span style="color:#3daee9">)</span><span style="color:#2980b9">..1]</span>
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#27aeae">$test</span><span style="color:#2980b9">[1..</span><span style="color:#3daee9">(</span><span style="color:#7f8c8d">count</span> <span style="color:#27aeae">$test</span><span style="color:#2980b9">[3]</span><span style="color:#3daee9">)</span><span style="color:#2980b9">]</span>
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#27aeae">$$foo</span><span style="color:#2980b9">[1..-1][5]</span>
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#27aeae">$$foo</span><span style="color:#2980b9">[1..-1]</span><span style="font-weight:bold">\</span>
|
|
<span style="color:#2980b9">[5][2]</span><span style="font-weight:bold">\</span>
|
|
<span style="color:#2980b9">[5]</span>
|
|
|
|
<span style="color:#7a7c7d">#show error</span>
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#27aeae">$PATH</span><span style="color:#2980b9">[</span><span style="color:#da4453;text-decoration:underline">error</span>
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#27aeae">$PATH</span><span style="color:#2980b9">[1..</span><span style="color:#da4453;text-decoration:underline">error</span><span style="color:#2980b9">]</span>
|
|
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#27aeae">$PATH</span><span style="color:#2980b9">[1 2 34</span> <span style="color:#2980b9">]</span>
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#27aeae">$PATH</span><span style="color:#2980b9">[1.. 2]</span>
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#27aeae">$PATH</span><span style="color:#2980b9">[1</span> <span style="color:#2980b9">..2]</span>
|
|
|
|
<span style="color:#7a7c7d">### Brace Expansion</span>
|
|
<span style="color:#7f8c8d">echo</span> input.<span style="color:#3daee9">{</span>c<span style="font-weight:bold">,</span>12h<span style="font-weight:bold">,</span>TXT<span style="color:#3daee9">}</span>
|
|
<span style="color:#7f8c8d">echo</span> input.<span style="color:#3daee9">{</span>abc<span style="color:#27aeae">$test</span><span style="color:#2980b9">[</span><span style="color:#3daee9">(</span><span style="color:#7f8c8d">count</span> <span style="color:#27aeae">$test</span><span style="color:#3daee9">)</span><span style="color:#2980b9">..1]</span><span style="font-weight:bold">,</span><span style="color:#3daee9">(</span><span style="color:#7f8c8d">echo</span> <span style="color:#27aeae">$txt</span><span style="color:#3daee9">)}</span>
|
|
<span style="color:#7f8c8d">echo</span> input.<span style="color:#3daee9">{</span>a<span style="color:#3daee9">{</span>b<span style="font-weight:bold">,</span>c<span style="color:#3daee9">}</span><span style="font-weight:bold">,</span>12h<span style="font-weight:bold">,</span>TXT<span style="color:#3daee9">}</span><span style="color:#da4453;text-decoration:underline">}</span> <span style="color:#7a7c7d"># show error</span>
|
|
|
|
|
|
<span style="color:#7a7c7d">### Index range expansion</span>
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#3daee9">(</span><span style="color:#7f8c8d">echo</span> <span style="color:#27aeae">$a</span><span style="color:#3daee9">)</span><span style="color:#2980b9">[2..5]</span>
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#3daee9">(</span><span style="color:#7f8c8d">echo</span> <span style="color:#27aeae">$a</span><span style="color:#3daee9">)</span><span style="color:#2980b9">[2..5 1..3]</span>
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#3daee9">(</span><span style="color:#7f8c8d">echo</span> <span style="color:#27aeae">$a</span><span style="color:#3daee9">)</span><span style="color:#2980b9">[-1..1]</span>
|
|
|
|
<span style="color:#7a7c7d">### Process expansion</span>
|
|
<span style="color:#7f8c8d">fg</span> <span style="color:#3daee9">%</span><span style="color:#27ae60">ema</span> <span style="color:#7a7c7d"># ???</span>
|
|
|
|
|
|
<span style="color:#7a7c7d">### Command substitution</span>
|
|
<span style="color:#7f8c8d">echo</span> -n -s <span style="color:#f44f4f">"</span><span style="color:#27aeae">$USER</span><span style="color:#f44f4f">"</span> @ <span style="color:#f44f4f">"</span><span style="color:#27aeae">$__fish_prompt_hostname</span><span style="color:#f44f4f">"</span> <span style="color:#f44f4f">' '</span> <span style="color:#3daee9">(</span><span style="color:#7f8c8d">set_color</span> <span style="color:#27aeae">$color_cwd</span><span style="color:#3daee9">)</span> <span style="color:#3daee9">(</span><span style="color:#0099ff;font-weight:bold">/usr/bin/</span><span style="color:#8e44ad">ls</span><span style="color:#3daee9">)</span> <span style="color:#3daee9">(</span><span style="color:#7f8c8d">set_color</span> normal<span style="color:#3daee9">)</span>
|
|
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#3daee9">(</span><span style="color:#7a7c7d">#hallo</span><span style="color:#3daee9">)</span>abc <span style="color:#7a7c7d"># ok</span>
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#3daee9">(</span><span style="color:#8e44ad">ls</span> <span style="color:#7a7c7d">#hallo</span><span style="color:#3daee9">)</span>abc <span style="color:#7a7c7d"># ok, die context-Tiefe ist anders</span>
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#3daee9">(</span><span style="color:#8e44ad">ls</span><span style="font-weight:bold">;</span><span style="color:#7a7c7d">#hallo</span><span style="color:#3daee9">)</span>abc <span style="color:#7a7c7d"># als hier.</span>
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#3daee9">(</span><span style="color:#8e44ad">ls#hallo</span><span style="color:#3daee9">)</span>abc <span style="color:#7a7c7d"># ok: # may be inner part of function names!</span>
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#3daee9">(</span><span style="color:#0099ff;font-weight:bold">/usr/bin/</span><span style="color:#8e44ad">ls</span><span style="color:#3daee9">)</span>
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#3daee9">(</span><span style="color:#8e44ad">ls</span> <span style="color:#3f8058">>></span>mem/abc<span style="color:#3daee9">)</span>
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#3daee9">(</span><span style="color:#7f8c8d">echo</span> <span style="color:#27aeae">$test</span><span style="color:#2980b9">[2]</span><span style="color:#3daee9">)</span>
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#3daee9">(</span><span style="color:#0099ff;font-weight:bold">/usr</span><span style="color:#f44f4f">"/bi"</span><span style="color:#0099ff;font-weight:bold">n/</span><span style="color:#8e44ad">ls</span> /tmp<span style="color:#3daee9">)</span>
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#3daee9">(</span><span style="color:#8e44ad">seq</span> 10<span style="color:#3daee9">)</span><span style="color:#2980b9">[1]</span>[2]
|
|
<span style="color:#7a7c7d"># ~~~ not an index</span>
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#3daee9">(</span><span style="color:#8e44ad">seq</span> 10<span style="color:#3daee9">)</span><span style="font-weight:bold">\</span>
|
|
<span style="color:#2980b9">[1]</span>[2]
|
|
<span style="color:#7a7c7d"># ~~~ not an index</span>
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#3daee9">(</span><span style="color:#8e44ad">seq</span> 10<span style="color:#3daee9">)</span><span style="font-weight:bold">\</span>
|
|
<span style="color:#2980b9">[1]</span><span style="font-weight:bold">\</span>
|
|
[2]
|
|
<span style="color:#7a7c7d">#~~ not an index</span>
|
|
|
|
<span style="color:#7a7c7d"># multline command substitution</span>
|
|
<span style="color:#7f8c8d">set</span> <span style="color:#27aeae">x</span> <span style="color:#3daee9">(</span><span style="color:#7f8c8d">echo</span> dirlist<span style="font-weight:bold">;</span> <span style="color:#7a7c7d"># blabla</span>
|
|
<span style="color:#8e44ad">ls</span><span style="color:#3daee9">)</span>
|
|
|
|
<span style="color:#7a7c7d">## same, but commented out:</span>
|
|
|
|
<span style="color:#7a7c7d"># set x (echo dirlist; # blabla</span>
|
|
<span style="color:#7a7c7d"># ls)</span>
|
|
|
|
<span style="color:#7f8c8d">set</span> <span style="color:#27aeae">pi</span> <span style="color:#3daee9">(</span><span style="color:#7f8c8d">math</span> <span style="color:#f44f4f">"scale=10; 4*a(1)"</span><span style="color:#3daee9">)</span>
|
|
|
|
<span style="color:#7a7c7d">### Continuation lines</span>
|
|
<span style="color:#8e44ad">ls</span> <span style="font-weight:bold">\</span>
|
|
/usr/bin
|
|
|
|
<span style="color:#7f8c8d">test</span> <span style="color:#f44f4f">"STRING1"</span><span style="color:#3f8058">=</span><span style="color:#f44f4f">"STRING2"</span> <span style="color:#3f8058">-a </span><span style="font-weight:bold">\</span>
|
|
<span style="color:#f44f4f">"STRING3"</span> <span style="color:#3f8058">=</span> <span style="color:#3daee9">(</span><span style="color:#7f8c8d">echo</span> <span style="color:#f44f4f">"STRING4"</span><span style="color:#3daee9">)</span>
|
|
|
|
<span style="color:#7f8c8d">echo</span> input.<span style="color:#3daee9">{</span>abc<span style="font-weight:bold">\</span>
|
|
<span style="font-weight:bold">,</span>12h<span style="font-weight:bold">,</span><span style="font-weight:bold">\</span>
|
|
TXT<span style="color:#3daee9">}</span>
|
|
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#3daee9">(</span><span style="font-weight:bold">\</span>
|
|
<span style="color:#8e44ad">ls</span><span style="color:#3daee9">)</span>
|
|
|
|
<span style="color:#7a7c7d"># no line continuation within single quotes</span>
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#f44f4f">'abcdefg\</span>
|
|
<span style="color:#f44f4f"> s$dfg sdf'</span>
|
|
<span style="color:#7a7c7d"># but within double quotes</span>
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#f44f4f">"123456</span><span style="font-weight:bold">\</span>
|
|
<span style="color:#f44f4f"> 78910"</span>
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#27aeae">$PATH</span><span style="color:#2980b9">[1..3</span><span style="font-weight:bold">\</span>
|
|
<span style="color:#2980b9">]</span>
|
|
<span style="color:#8e44ad">ls</span> /usr<span style="font-weight:bold">\</span>
|
|
local/bin
|
|
<span style="color:#7f8c8d">echo</span> foo<span style="font-weight:bold">\ </span>bar
|
|
<span style="color:#7f8c8d">echo</span> foo<span style="font-weight:bold">\</span>
|
|
bar
|
|
|
|
<span style="color:#fdbc4b;font-weight:bold">for</span> <span style="color:#27aeae">i</span> <span style="font-weight:bold">\</span>
|
|
<span style="color:#fdbc4b;font-weight:bold">in</span> <span style="font-weight:bold">\</span>
|
|
a b c
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#27aeae">$i</span>
|
|
<span style="color:#fdbc4b;font-weight:bold">end</span>
|
|
|
|
<span style="color:#7a7c7d"># Bug?</span>
|
|
<span style="color:#7a7c7d"># Depending on weakDeliminators, either this works:</span>
|
|
<span style="color:#8e44ad">cat\ alog</span> -abc
|
|
<span style="color:#7a7c7d"># or this:</span>
|
|
<span style="color:#8e44ad">builtin</span><span style="font-weight:bold">\</span>
|
|
--names jobs
|
|
<span style="color:#7f8c8d">builtin</span> <span style="font-weight:bold">\</span>
|
|
--names <span style="color:#7f8c8d">jobs</span>
|
|
|
|
<span style="color:#7f8c8d">command</span> <span style="font-weight:bold">\</span>
|
|
<span style="color:#8e44ad">ls</span>
|
|
|
|
<span style="color:#7f8c8d">eval</span> <span style="font-weight:bold">\</span>
|
|
<span style="color:#8e44ad">ls</span> . /tmp
|
|
<span style="color:#8e44ad">eval</span><span style="font-weight:bold">\</span>
|
|
ls .../tmp
|
|
|
|
<span style="color:#7f8c8d">set</span> <span style="font-weight:bold">\</span>
|
|
-e <span style="color:#27aeae">i</span><span style="color:#2980b9">[-1]</span>
|
|
<span style="color:#7f8c8d">set</span> <span style="font-weight:bold">\</span>
|
|
<span style="color:#27aeae">test1</span><span style="color:#2980b9">[-1..1]</span> <span style="font-weight:bold">\</span>
|
|
<span style="color:#27aeae">$test</span><span style="font-weight:bold">;</span> <span style="font-weight:bold">\</span>
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#27aeae">$test1</span>
|
|
|
|
<span style="color:#7f8c8d">read</span> <span style="font-weight:bold">\</span>
|
|
-gi <span style="color:#27aeae">test</span>
|
|
|
|
|
|
|
|
<span style="color:#7a7c7d"># see https://github.com/fish-shell/fish-shell/pull/1987</span>
|
|
<span style="color:#7f8c8d">echo</span> before comment <span style="font-weight:bold">\</span>
|
|
<span style="color:#7a7c7d"># comment</span>
|
|
<span style="color:#7a7c7d"># comment2</span>
|
|
after comment <span style="color:#7a7c7d"># just another argument</span>
|
|
<span style="color:#7f8c8d">echo</span> before comment<span style="font-weight:bold">\</span>
|
|
<span style="color:#7a7c7d"># comment ^ no space</span>
|
|
<span style="color:#7a7c7d"># comment2</span>
|
|
<span style="color:#8e44ad">after</span> comment <span style="color:#7a7c7d"># a command</span>
|
|
<span style="color:#8e44ad">from</span> root
|
|
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#f44f4f">"hello"</span> <span style="font-weight:bold">|</span> <span style="font-weight:bold">\</span>
|
|
<span style="color:#7a7c7d">#remove 'l'</span>
|
|
<span style="color:#7a7c7d">#and more</span>
|
|
<span style="color:#8e44ad">tr</span> -d <span style="color:#f44f4f">'l'</span>
|
|
|
|
<span style="color:#7a7c7d">### Trouble</span>
|
|
<span style="color:#8e44ad">make</span><span style="font-weight:bold">;</span> <span style="color:#fdbc4b;font-weight:bold">and</span> <span style="color:#8e44ad">make</span> install<span style="font-weight:bold">;</span> <span style="color:#fdbc4b;font-weight:bold">or</span> <span style="color:#8e44ad">make</span> clean <span style="color:#7a7c7d"># ok</span>
|
|
<span style="color:#7f8c8d">printf</span> <span style="color:#f44f4f">'%s\t%s\n'</span> flounder fish <span style="color:#7a7c7d"># ok</span>
|
|
<span style="color:#8e44ad">diff</span> <span style="color:#3daee9">(</span><span style="color:#8e44ad">sort</span> a.txt <span style="font-weight:bold">|</span> <span style="color:#7f8c8d">psub</span><span style="color:#3daee9">)</span> <span style="color:#3daee9">(</span><span style="color:#8e44ad">sort</span> b.txt <span style="font-weight:bold">|</span> <span style="color:#7f8c8d">psub</span><span style="color:#3daee9">)</span>
|
|
<span style="color:#8e44ad">source-highlight</span> -f esc <span style="color:#3daee9">(</span><span style="color:#8e44ad">cpp</span> main.c <span style="font-weight:bold">|</span> <span style="color:#7f8c8d">psub</span> -s .c<span style="color:#3daee9">)</span>
|
|
|
|
<span style="color:#fdbc4b;font-weight:bold">while</span> <span style="color:#7f8c8d">test</span> <span style="color:#3f8058">-f </span>foo.txt <span style="color:#7a7c7d"># comment</span>
|
|
<span style="color:#7f8c8d">echo</span> hallo
|
|
<span style="color:#fdbc4b;font-weight:bold">end</span>
|
|
|
|
<span style="color:#fdbc4b;font-weight:bold">for</span> <span style="color:#27aeae">i</span> <span style="color:#fdbc4b;font-weight:bold">in</span> <span style="color:#3daee9">{</span>1<span style="font-weight:bold">,</span><span style="color:#3daee9">(</span><span style="color:#8e44ad">ls</span><span style="color:#3daee9">)</span><span style="font-weight:bold">,</span>3<span style="color:#3daee9">}</span> <span style="color:#7a7c7d"># comment</span>
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#27aeae">$i</span>
|
|
<span style="color:#fdbc4b;font-weight:bold">end</span>
|
|
|
|
<span style="color:#7a7c7d"># function</span>
|
|
<span style="color:#fdbc4b;font-weight:bold">function</span> <span style="color:#8e44ad">__hidden</span> <span style="color:#7a7c7d"># comment</span>
|
|
<span style="color:#7f8c8d">cd</span> /
|
|
<span style="color:#fdbc4b;font-weight:bold">end</span>
|
|
|
|
<span style="color:#fdbc4b;font-weight:bold">function</span> <span style="color:#8e44ad">ll</span> <span style="font-weight:bold">\</span>
|
|
-d <span style="color:#a43340">"multiline</span>
|
|
<span style="color:#a43340"> description"</span>
|
|
<span style="color:#8e44ad">ls</span> -l <span style="color:#27aeae">$argv</span>
|
|
<span style="color:#fdbc4b;font-weight:bold">end</span>
|
|
|
|
<span style="color:#fdbc4b;font-weight:bold">function</span> <span style="color:#8e44ad">ls</span> --description=<span style="color:#a43340">"Description"</span> -a a b c <span style="color:#7a7c7d"># comment</span>
|
|
<span style="color:#7f8c8d">command</span> <span style="color:#8e44ad">ls</span> --color<span style="color:#3f8058">=</span>auto <span style="color:#27aeae">$argv</span>
|
|
<span style="color:#fdbc4b;font-weight:bold">if</span> <span style="color:#7f8c8d">test</span> <span style="color:#3f8058">-f </span>foo.txt
|
|
<span style="color:#7f8c8d">echo</span> foo.txt exists
|
|
<span style="color:#fdbc4b;font-weight:bold">else</span> <span style="color:#fdbc4b;font-weight:bold">if</span> <span style="color:#7f8c8d">test</span> <span style="color:#3f8058">-f </span>bar.txt <span style="color:#7a7c7d"># comment</span>
|
|
<span style="color:#7f8c8d">echo</span> bar.txt exists
|
|
<span style="color:#fdbc4b;font-weight:bold">else</span>
|
|
<span style="color:#7f8c8d">echo</span> foo.txt and bar.txt do not exist
|
|
<span style="color:#fdbc4b;font-weight:bold">end</span> <span style="color:#7a7c7d"># comment</span>
|
|
<span style="color:#fdbc4b;font-weight:bold">end</span>
|
|
|
|
<span style="color:#fdbc4b;font-weight:bold">function</span> <span style="color:#8e44ad">test</span><span style="font-weight:bold">;</span><span style="color:#7f8c8d">echo</span> hallo<span style="font-weight:bold">;</span><span style="color:#fdbc4b;font-weight:bold">end</span> <span style="color:#7a7c7d"># comment</span>
|
|
|
|
<span style="color:#fdbc4b;font-weight:bold">switch</span> <span style="color:#27aeae">$animal</span> <span style="color:#7a7c7d"># comment</span>
|
|
<span style="color:#fdbc4b;font-weight:bold">case</span> cat <span style="color:#7a7c7d"># comment</span>
|
|
<span style="color:#7f8c8d">echo</span> evil
|
|
<span style="color:#fdbc4b;font-weight:bold">case</span> wolf <span style="font-weight:bold">\</span>
|
|
dog
|
|
<span style="color:#7f8c8d">echo</span> mammal
|
|
<span style="color:#fdbc4b;font-weight:bold">case</span> <span style="color:#f44f4f">'*'</span>
|
|
<span style="color:#7f8c8d">echo</span> I have no idea what a <span style="color:#27aeae">$animal</span> is
|
|
<span style="color:#fdbc4b;font-weight:bold">end</span>
|
|
|
|
<span style="color:#fdbc4b;font-weight:bold">if</span> <span style="color:#7f8c8d">test</span> <span style="color:#3daee9">(</span><span style="color:#7f8c8d">count</span> <span style="color:#27aeae">$argv</span><span style="color:#3daee9">)</span> <span style="color:#3f8058">=</span> 1
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#27aeae">$argv</span>
|
|
<span style="color:#fdbc4b;font-weight:bold">else</span>
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#f44f4f">"?"</span>
|
|
<span style="color:#fdbc4b;font-weight:bold">end</span>
|
|
|
|
<span style="color:#fdbc4b;font-weight:bold">if</span> <span style="color:#fdbc4b;font-weight:bold">not</span> <span style="color:#7f8c8d">test</span> <span style="color:#3f8058">-f </span>spoon <span style="color:#7a7c7d">#comment</span>
|
|
<span style="color:#7f8c8d">echo</span> There is no spoon
|
|
<span style="color:#fdbc4b;font-weight:bold">else</span>
|
|
<span style="color:#7f8c8d">exit</span> 1
|
|
<span style="color:#fdbc4b;font-weight:bold">end</span>
|
|
|
|
<span style="color:#fdbc4b;font-weight:bold">for</span> <span style="color:#27aeae">file</span> <span style="color:#fdbc4b;font-weight:bold">in</span> <span style="color:#27aeae">$cfgfiles</span>
|
|
<span style="color:#fdbc4b;font-weight:bold">if</span> <span style="color:#7f8c8d">test</span> <span style="color:#3f8058">-f </span><span style="color:#27aeae">$file</span>
|
|
<span style="color:#7f8c8d">string</span> <span style="color:#7f8c8d">match</span> -r <span style="color:#f44f4f">'\[Dialer'</span> <span style="color:#3f8058"><</span> <span style="color:#27aeae">$file</span> <span style="font-weight:bold">|</span> <span style="color:#7f8c8d">string</span> <span style="color:#7f8c8d">replace</span> -r <span style="color:#f44f4f">'\[Dialer (.+)\]'</span> <span style="color:#f44f4f">'$1'</span>
|
|
<span style="color:#fdbc4b;font-weight:bold">end</span>
|
|
<span style="color:#fdbc4b;font-weight:bold">end</span> <span style="font-weight:bold">|</span> <span style="color:#8e44ad">sort</span> -u <span style="font-weight:bold">|</span> <span style="color:#7f8c8d">string</span> <span style="color:#7f8c8d">match</span> -v Defaults
|
|
|
|
<span style="color:#fdbc4b;font-weight:bold">for</span> <span style="color:#27aeae">i</span> <span style="color:#fdbc4b;font-weight:bold">in</span> <span style="font-weight:bold">*</span>.c
|
|
<span style="color:#fdbc4b;font-weight:bold">if</span> <span style="color:#8e44ad">grep</span> smurf <span style="color:#27aeae">$i</span> <span style="color:#7a7c7d"># comment</span>
|
|
<span style="color:#7f8c8d">echo</span> Smurfs are present in <span style="color:#27aeae">$i</span>
|
|
<span style="color:#7f8c8d">break</span>
|
|
<span style="color:#fdbc4b;font-weight:bold">end</span>
|
|
<span style="color:#fdbc4b;font-weight:bold">end</span>
|
|
|
|
<span style="color:#fdbc4b;font-weight:bold">if</span> <span style="color:#fdbc4b;font-weight:bold">begin</span> <span style="color:#7f8c8d">contains</span> -- <span style="color:#27aeae">$argv</span> --force <span style="color:#7a7c7d"># ohne ; nach begin: geht</span>
|
|
<span style="color:#fdbc4b;font-weight:bold">or</span> <span style="color:#fdbc4b;font-weight:bold">not</span> <span style="color:#7f8c8d">status</span> --is-interactive and not status --is-login
|
|
<span style="color:#fdbc4b;font-weight:bold">end</span>
|
|
<span style="color:#7f8c8d">echo</span> <span style="color:#f44f4f">""</span>
|
|
<span style="color:#fdbc4b;font-weight:bold">end</span>
|
|
|
|
<span style="color:#fdbc4b;font-weight:bold">begin</span> <span style="color:#7a7c7d"># comment</span>
|
|
<span style="color:#fdbc4b;font-weight:bold">for</span> <span style="color:#27aeae">i</span> <span style="color:#fdbc4b;font-weight:bold">in</span> <span style="font-weight:bold">*</span>.tmp
|
|
<span style="color:#fdbc4b;font-weight:bold">if</span> <span style="color:#8e44ad">grep</span> smurf <span style="color:#27aeae">$i</span>
|
|
<span style="color:#7f8c8d">continue</span>
|
|
<span style="color:#fdbc4b;font-weight:bold">end</span>
|
|
<span style="color:#8e44ad">rm</span> <span style="color:#27aeae">$i</span>
|
|
<span style="color:#fdbc4b;font-weight:bold">end</span>
|
|
<span style="color:#fdbc4b;font-weight:bold">end</span>
|
|
|
|
<span style="color:#fdbc4b;font-weight:bold">if</span> <span style="color:#7f8c8d">[ </span><span style="color:#27aeae">$status</span><span style="color:#3f8058"> -eq </span>1<span style="color:#7f8c8d"> ]</span>
|
|
<span style="color:#7f8c8d">set</span> <span style="color:#27aeae">sta</span> pass
|
|
<span style="color:#fdbc4b;font-weight:bold">else</span>
|
|
<span style="color:#7f8c8d">set</span> <span style="color:#27aeae">sta</span> fail
|
|
<span style="color:#fdbc4b;font-weight:bold">end</span>
|
|
|
|
<span style="color:#7f8c8d">exec</span> <span style="color:#f44f4f">"</span><span style="color:#27aeae">$test</span><span style="color:#f44f4f">"</span>
|
|
|
|
|
|
<span style="color:#7a7c7d"># Process Expansion</span>
|
|
<span style="color:#7a7c7d"># see fish issue 4230</span>
|
|
<span style="color:#8e44ad">kill</span> -STOP <span style="color:#3daee9">%</span><span style="color:#27ae60">self</span>
|
|
|
|
<span style="color:#8e44ad">endcmd</span> <span style="color:#7a7c7d"># is a command</span>
|
|
|
|
<span style="color:#fdbc4b;font-weight:bold">for</span> <span style="color:#27aeae">inc</span> <span style="color:#fdbc4b;font-weight:bold">in</span> a <span style="color:#7a7c7d"># inc is a variable</span>
|
|
<span style="color:#fdbc4b;font-weight:bold">end</span>
|
|
|
|
<span style="color:#fdbc4b;font-weight:bold">switch</span> d<span style="font-weight:bold">;</span><span style="color:#fdbc4b;font-weight:bold">case</span> <span style="color:#f44f4f">"*"</span> <span style="font-weight:bold">;</span> <span style="color:#fdbc4b;font-weight:bold">case</span> d<span style="font-weight:bold">;</span><span style="color:#7f8c8d">echo</span><span style="font-weight:bold">;</span> <span style="color:#fdbc4b;font-weight:bold">end</span>
|
|
|
|
<span style="color:#fdbc4b;font-weight:bold">if</span> <span style="font-weight:bold">;</span> <span style="color:#fdbc4b;font-weight:bold">else</span> <span style="color:#fdbc4b;font-weight:bold">if</span> <span style="font-weight:bold">;</span> <span style="color:#fdbc4b;font-weight:bold">else</span> <span style="color:#fdbc4b;font-weight:bold">if</span> <span style="font-weight:bold">;</span> <span style="color:#fdbc4b;font-weight:bold">if</span> <span style="font-weight:bold">;</span> <span style="color:#fdbc4b;font-weight:bold">else</span> <span style="font-weight:bold">;</span> <span style="color:#fdbc4b;font-weight:bold">end</span><span style="font-weight:bold">;</span><span style="color:#fdbc4b;font-weight:bold">else</span> <span style="font-weight:bold">;</span> <span style="color:#fdbc4b;font-weight:bold">end</span>
|
|
</pre></body></html>
|