# Serious Shell Programming

## Serious Shell Programming

- [Introduction](https://freebsdfrau.gitbook.io/serious-shell-programming/master.md)
- [Acknowledgements](https://freebsdfrau.gitbook.io/serious-shell-programming/acknowledgements.md)
- [Strings](https://freebsdfrau.gitbook.io/serious-shell-programming/basics/strings.md)
- [Single-Quotes](https://freebsdfrau.gitbook.io/serious-shell-programming/basics/strings/single-quotes.md)
- [Double-Quotes](https://freebsdfrau.gitbook.io/serious-shell-programming/basics/strings/double-quotes.md)
- [Unquoted Strings](https://freebsdfrau.gitbook.io/serious-shell-programming/basics/strings/unquoted-strings.md)
- [Compound Strings](https://freebsdfrau.gitbook.io/serious-shell-programming/basics/strings/compound-strings.md)
- [Here Documents](https://freebsdfrau.gitbook.io/serious-shell-programming/basics/here-documents.md)
- [Here Doc](https://freebsdfrau.gitbook.io/serious-shell-programming/basics/here-documents/here-doc.md)
- [Indented Here Doc](https://freebsdfrau.gitbook.io/serious-shell-programming/basics/here-documents/indented-here-doc.md)
- [Literal Here Doc](https://freebsdfrau.gitbook.io/serious-shell-programming/basics/here-documents/literal-here-doc.md)
- [In-Memory Here Doc](https://freebsdfrau.gitbook.io/serious-shell-programming/basics/here-documents/in-memory-here-doc.md)
- [Conditionals](https://freebsdfrau.gitbook.io/serious-shell-programming/basics/conditionals.md)
- [Built-in test](https://freebsdfrau.gitbook.io/serious-shell-programming/basics/conditionals/built-in-test.md)
- [Parameter Conditionals](https://freebsdfrau.gitbook.io/serious-shell-programming/basics/conditionals/parameter-conditionals.md)
- [Parameter test](https://freebsdfrau.gitbook.io/serious-shell-programming/basics/conditionals/parameter-test.md)
- [Regex](https://freebsdfrau.gitbook.io/serious-shell-programming/basics/regex.md)
- [grep](https://freebsdfrau.gitbook.io/serious-shell-programming/basics/regex/grep.md)
- [awk](https://freebsdfrau.gitbook.io/serious-shell-programming/basics/regex/awk.md)
- [pcre](https://freebsdfrau.gitbook.io/serious-shell-programming/basics/regex/pcre.md)
- [Control Flow](https://freebsdfrau.gitbook.io/serious-shell-programming/basics/control-flow.md)
- [Binary Operators](https://freebsdfrau.gitbook.io/serious-shell-programming/basics/control-flow/binary-operators.md)
- [if-elif-else](https://freebsdfrau.gitbook.io/serious-shell-programming/basics/control-flow/if-elif-else.md)
- [case Statement](https://freebsdfrau.gitbook.io/serious-shell-programming/basics/control-flow/case-statement.md)
- [for Loop](https://freebsdfrau.gitbook.io/serious-shell-programming/basics/control-flow/for-loop.md)
- [while Loop](https://freebsdfrau.gitbook.io/serious-shell-programming/basics/control-flow/while-loop.md)
- [Functions](https://freebsdfrau.gitbook.io/serious-shell-programming/basics/control-flow/functions.md)
- [Introduction](https://freebsdfrau.gitbook.io/serious-shell-programming/shellcheck/introduction.md)
- [Bad Advice](https://freebsdfrau.gitbook.io/serious-shell-programming/shellcheck/bad-advice.md)
- [awk](https://freebsdfrau.gitbook.io/serious-shell-programming/style/awk.md)
- [case](https://freebsdfrau.gitbook.io/serious-shell-programming/style/case.md)
- [Redirection](https://freebsdfrau.gitbook.io/serious-shell-programming/style/redirection.md)
- [Comments](https://freebsdfrau.gitbook.io/serious-shell-programming/style/comments.md)
- [trap](https://freebsdfrau.gitbook.io/serious-shell-programming/style/trap.md)
- [substr](https://freebsdfrau.gitbook.io/serious-shell-programming/string-functions/substr.md)
- [sprintf](https://freebsdfrau.gitbook.io/serious-shell-programming/string-functions/sprintf.md)
- [replace](https://freebsdfrau.gitbook.io/serious-shell-programming/string-functions/replace.md)
- [replaceall](https://freebsdfrau.gitbook.io/serious-shell-programming/string-functions/replaceall.md)
- [replacestart](https://freebsdfrau.gitbook.io/serious-shell-programming/string-functions/replacestart.md)
- [replaceend](https://freebsdfrau.gitbook.io/serious-shell-programming/string-functions/replaceend.md)
- [fnmatch](https://freebsdfrau.gitbook.io/serious-shell-programming/string-functions/fnmatch.md)
- [Pre-declaring Arrays](https://freebsdfrau.gitbook.io/serious-shell-programming/awk/pre-declaring-arrays.md)
- [Sorting Arrays](https://freebsdfrau.gitbook.io/serious-shell-programming/awk/sorting-arrays.md)
- [Arguments](https://freebsdfrau.gitbook.io/serious-shell-programming/know-your-limits/arguments.md)
- [Environment Variables](https://freebsdfrau.gitbook.io/serious-shell-programming/know-your-limits/environment-variables.md)
- [Solutions](https://freebsdfrau.gitbook.io/serious-shell-programming/know-your-limits/solutions.md)
