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]]. |