Bash Script Skeleton
#!/usr/bin/env bash | Shebang line |
set -euo pipefail | Strict mode: exit on error, undefined var, pipe fail |
IFS=$'\n\t' | Set safe IFS |
readonly SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" | Script directory |
trap 'echo Error at line $LINENO' ERR | Error trap |
Common Patterns
[[ -f "$file" ]] && echo exists | File exists check |
[[ -d "$dir" ]] || mkdir -p "$dir" | Create dir if missing |
for f in ./*.log; do echo "$f"; done | Loop over files |
result=$(command arg) | Capture output |
${var:-default} | Default value if unset |
read -r -p "Continue? [y/N] " response | Prompt user |