User Tools

Site Tools


shell_or_bash_scripts

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
shell_or_bash_scripts [2017/05/28 11:46] skipidarshell_or_bash_scripts [2022/10/14 06:01] (current) – [Double-Dash in Shell commands] skipidar
Line 1: Line 1:
-===== Shell or Bash Scripts =====+====== Shell or Bash Scripts ======
  
 |Shebang|Header, which tells where the interpreter is located <code>#!/bin/sh</code> | http://stackoverflow.com/questions/10376206/what-is-the-preferred-bash-shebang | |Shebang|Header, which tells where the interpreter is located <code>#!/bin/sh</code> | http://stackoverflow.com/questions/10376206/what-is-the-preferred-bash-shebang |
Line 7: Line 7:
 <code>./path/to/script.sh</code> </WRAP>| http://superuser.com/questions/176783/what-is-the-difference-between-executing-a-bash-script-and-sourcing-a-bash-scrip | <code>./path/to/script.sh</code> </WRAP>| http://superuser.com/questions/176783/what-is-the-difference-between-executing-a-bash-script-and-sourcing-a-bash-scrip |
  
-==== Guides====  +===== Guides====
-|http://www.artificialworlds.net/blog/2012/10/17/bash-associative-array-examples/+
-|https://linuxconfig.org/bash-scripting-tutorial| +
-|http://www.tldp.org/LDP/Bash-Beginners-Guide/html/Bash-Beginners-Guide.html#chap_11| +
-|http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html|+
  
-==== Executing or Sourcing the script====+|https://www.shellcheck.net/|Check the syntax of the shell live| 
 +|http://www.artificialworlds.net/blog/2012/10/17/bash-associative-array-examples/| | 
 +|https://linuxconfig.org/bash-scripting-tutorial| | 
 +|http://www.tldp.org/LDP/Bash-Beginners-Guide/html/Bash-Beginners-Guide.html#chap_11| | 
 +|http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html| | 
 + 
 +===== Executing or Sourcing the script=====
  
 Sourcing.  Sourcing. 
Line 24: Line 26:
  
  
-==== Syntax ====+===== Syntax =====
  
-=== declare Function===+==== declare Function====
 Returning result is done via **echo** Returning result is done via **echo**
  
Line 61: Line 63:
 </code> </code>
  
-== declare Map ==+==== declare Map ====
 Big A!!! Big A!!!
 <code> <code>
Line 72: Line 74:
 </code> </code>
  
-== iterate array keys ==+==== iterate array keys ====
 Access via **${!array[@]}** Access via **${!array[@]}**
  
Line 83: Line 85:
 </code> </code>
  
-== dereference an array / map value ==+==== dereference an array / map value ====
 <code> <code>
 ${ARRAY[2]} ${ARRAY[2]}
Line 103: Line 105:
 </code> </code>
  
-== Command Substitution ==+==== Command Substitution ====
  
 Command substitution allows the output of a command to replace the command itself. Command substitution occurs when a command is enclosed like this: Command substitution allows the output of a command to replace the command itself. Command substitution occurs when a command is enclosed like this:
Line 116: Line 118:
 `command` `command`
 </code> </code>
 +
 +
 +==== Input from command line ====
 +If a command expects **a file** as input - one can pass input from STDOUT instead,
 +without storing the output to a file first by using following syntax
 +
 +**oc create -f** expects a file here.
 +
 +<code>
 +oc process -f build/my-build-template.yaml  GITSERVER=$GITSERVER | oc create -f - 
 +oc process -f build/my-build-template.yaml  GITSERVER=$GITSERVER | oc create -f /dev/stdin 
 +</code>
 +
 +
 +==== Double-Dash -- in Shell commands ====
 +A double-dash in a shell command signals the end of options and disables further option processing.
 +https://www.baeldung.com/linux/double-dash-in-shell-commands
 +
 +
 +<sxh shell>
 +# If we use the same approach, we'll receive an error:
 +# That's because grep treats "--hello" as a multi-character command option.
 +grep "--hello" data.txt
 +
 +#works
 +grep -- --hello data.txt
 +</sxh>
shell_or_bash_scripts.1495972009.txt.gz · Last modified: (external edit)