Differences
This shows you the differences between two versions of the page.
 
| Both sides previous revisionPrevious revisionNext revision | Previous revision | 
| bash [2020/08/12 17:19]  – [Variables] formatting shawn | bash [2020/08/12 19:07] (current)  – [Functions]  Adds  tips shawn | 
|---|
|  |  | 
|  | ''#!/usr/bin/env bash'' - Use ''bash'' found in the environment path. Protects against not knowing where user's ''bash'' is installed. | 
|  |  | 
| ====== set options ====== | ====== set options ====== | 
| * ''-e'':  causes the script to exit on most command failures (non-zero exit codes) | * ''-e'':  causes the script to exit on most command failures (non-zero exit codes) | 
| * ''-u'':  treats unset variables and parameters other than the special parameters @ or * as an error when performing parameter expansion | * ''-u'':  treats unset variables and parameters other than the special parameters @ or * as an error when performing parameter expansion | 
| * ''-o'' pipefail: causes the script to exit if a command in a pipeline fails | * ''-o pipefail'': causes the script to exit if a command in a pipeline fails | 
| * use a + to unset them if necessary | * use a + to unset them if necessary | 
|  |  | 
| * ''$IFS'' - Internal/input field separator (defaults to combo of space, newline and tab) | * ''$IFS'' - Internal/input field separator (defaults to combo of space, newline and tab) | 
|  |  | 
|  | ====== Functions ====== | 
|  |  | 
|  | Declaring a function (needs to happen before use): | 
|  |  | 
|  | ''function <function_name> { ... do things ... }'' | 
|  |  | 
|  | - or - | 
|  |  | 
|  | ''<function_name>() { ... do things ... }'' | 
|  |  | 
|  | * Nothing ever goes inside parentheses. | 
|  | * Passed parameters can be accessed with ''$1''..''$n''. | 
|  |  | 
|  | ====== Tips ====== | 
|  |  | 
|  | * [[https://stackoverflow.com/a/16496491|Use getopts to parse commandline options]]. |