Languages
Bash & Zsh
The shells your scripts actually run in — quoting, expansion, traps.
- •150 XPVariables & QuotingSingle vs double quotes, ${var} braces, and parameter expansion that replaces half your sed scripts.
- •150 XPArrays & StringsIndexed arrays, associative arrays, slicing, length — and where zsh's array semantics quietly win.
- •150 XPControl Flowif / while / for / case — and the three different test brackets ([, [[, and (() — that mean similar things and don't.
- •150 XPFunctions & Locals`local`, return values vs exit codes, scope rules — and why bash functions don't return what you think they return.
- •175 XPPipes & Redirectionfd 0/1/2 manipulation, here-docs, here-strings, tee, process substitution — the full I/O toolkit.
- •175 XPGlobbing & ExpansionGlobs, brace expansion, tilde, command substitution, process substitution — and the ORDER they happen in.
- •175 XPJob Control & Traps& background, wait, jobs, fg/bg, trap on EXIT/ERR/INT — making your scripts behave like good UNIX citizens.
- •175 XPset Optionsset -euo pipefail, IFS, set -x — the four-line opener that turns a fragile bash script into one you can trust.
- •200 XPBash vs ZshCompatibility, key zsh wins (extended globbing, prompts, completions, arrays), when each shell is right.