diff options
author | johannst <johannst@users.noreply.github.com> | 2024-01-25 07:33:01 +0000 |
---|---|---|
committer | johannst <johannst@users.noreply.github.com> | 2024-01-25 07:33:01 +0000 |
commit | 920d16436e0d5f37e9f6d31236ee87b716f3c82f (patch) | |
tree | 39ca6b8ac6733827debe6a8131032892763848bc /print.html | |
parent | 6dbf014773f5f8ac0b0e291392dfde518de94daf (diff) | |
download | notes-920d16436e0d5f37e9f6d31236ee87b716f3c82f.tar.gz notes-920d16436e0d5f37e9f6d31236ee87b716f3c82f.zip |
deploy: f7fb4c7303a5776ddb421d182a92f679a8b0f868
Diffstat (limited to 'print.html')
-rw-r--r-- | print.html | 16 |
1 files changed, 16 insertions, 0 deletions
@@ -335,6 +335,13 @@ echo ${(kv)vec} # a aa b bb # Iterate over key value pairs. for k v in ${(kv)vec)}; do ...; done </code></pre> +<h2 id="io-redirections"><a class="header" href="#io-redirections">I/O redirections</a></h2> +<p>See <a href="tools/bash.html#io-redirection">bash - I/O redirection</a></p> +<h2 id="process-substitution"><a class="header" href="#process-substitution">Process substitution</a></h2> +<p>Process substitution allows to redirect the stdout of multiple processes at +once.</p> +<pre><code class="language-bash">vim -d <(grep foo bar) <(grep foo moose) +</code></pre> <h2 id="argument-parsing-with-zparseopts"><a class="header" href="#argument-parsing-with-zparseopts">Argument parsing with <code>zparseopts</code></a></h2> <pre><code class="language-zsh">zparseopts [-D] [-E] [-A assoc] specs </code></pre> @@ -589,6 +596,11 @@ contains some nice visualization to explain bash redirections.</p> <li>duplicate <code>fd 1</code> to <code>fd 2</code>, effectively redirecting <code>stderr</code> to <code>stdout</code></li> <li>redirect <code>stdout</code> to <code>file</code></li> </ol> +<h2 id="process-substitution-ref"><a class="header" href="#process-substitution-ref">Process substitution (<a href="https://tldp.org/LDP/abs/html/process-sub.html">ref</a>)</a></h2> +<p>Process substitution allows to redirect the stdout of multiple processes at +once.</p> +<pre><code class="language-bash">vim -d <(grep foo bar) <(grep foo moose) +</code></pre> <h2 id="argument-parsing-with-getopts"><a class="header" href="#argument-parsing-with-getopts">Argument parsing with <code>getopts</code></a></h2> <p>The <code>getopts</code> builtin uses following global variables:</p> <ul> @@ -773,6 +785,10 @@ echo "ls output: "(ls) <pre><code class="language-sh"># 'noclobber', fail if 'log' already exists echo foo >? log </code></pre> +<h3 id="process-substitution-1"><a class="header" href="#process-substitution-1">Process substitution</a></h3> +<p>Redirect output of multiple processes. Same as <code><(..)</code> in bash.</p> +<pre><code class="language-sh">diff (sort a | psub) (sort b | psub) +</code></pre> <h2 id="control-flow"><a class="header" href="#control-flow">Control Flow</a></h2> <h3 id="if--else"><a class="header" href="#if--else"><code>if</code> / <code>else</code></a></h3> <pre><code class="language-sh">if grep foo bar |