Advanced Bash scripting is less about memorising syntax and more about combining small shell features safely: arguments, functions, tests, loops and error handling.
Use strict mode carefully
#!/bin/bash
set -euo pipefail
This helps catch common mistakes, but test scripts properly because it can change how failures inside pipelines or unset variables behave.
Read arguments
input_file="${1:-}"
if [ -z "$input_file" ]; then
echo "Usage: $0 file"
exit 1
fi
Use functions
log() {
echo "[$(date +%F_%T)] $*"
}
log "Starting job"
Keep scripts maintainable
- Use clear variable names.
- Quote variables unless you intentionally need word splitting.
- Check return codes for important commands.
- Prefer readable scripts over clever one-liners.