Chapter
Chapter 1: Let's Start Programming
Messing around with stdin, stdout, and stderr
Time for the interpreter: the sha-bang
Something went wrong, let's trace it
Keep the variable name safe
Variables with limited scope
Pattern matching against variables
Operators evaluation order and precedence in decreasing relevance
Chapter 4: Quoting and Escaping
The semicolon character (;)
The double semicolon character (;;)
The case terminator (;;&) and (;
The single quotes ('...')
The ,, and , () case modificators
The ^^ and ^ () case modificators
The parameter substitution (${})
The quoted string expansion ($'...')
The positional parameters ($* and $
Grouping the command (command1 ; command2 ; commandn)
Integer expansion (((..)))
The ASCII comparison operators (<) and (>)
The force redirection (>|)
The control characters (^ and ^^)
Chapter 5: Menus, Arrays, and Functions
Let's do something while, until…
Exiting the loop with break and continue
Time to give our client a menu
CLI, passing the arguments to the command line
Chapter 7: Plug into the Real World
Active and passive checks
Returning code and thresholds
Command and service definitions
Chapter 8: We Want to Chat
The Slack messaging service
Our wee chatty script for Slack
Chapter 9: Subshells, Signals, and Job Controls
Subshells and parallel processing
Chapter 10: Lets Make a Process Chat
Chapter 11: Living as a Daemon
Going dark with the daemon
Chapter 12: Remote Connections over SSH
Preparing the remote account
Chapter 13: Its Time for a Timer
Chapter 14: Time for Safety
Restricted shells for OpenSSH
Restricted sftp sessions with OpenSSH