Shell 脚本模板

Bash Script Skeleton

#!/usr/bin/env bashShebang line
set -euo pipefailStrict 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' ERRError trap

Common Patterns

[[ -f "$file" ]] && echo existsFile exists check
[[ -d "$dir" ]] || mkdir -p "$dir"Create dir if missing
for f in ./*.log; do echo "$f"; doneLoop over files
result=$(command arg)Capture output
${var:-default}Default value if unset
read -r -p "Continue? [y/N] " responsePrompt user