Google Shell Style Guide
Official Google Shell scripting standards for consistent, maintainable Bash scripts.
Quick Reference
Golden Rules
- Use
#!/bin/bash— specify interpreter - Quote variables —
"$var"not$var - Check exit codes —
set -eor explicit checks - Use functions — organize code logically
- Avoid parsing
ls— use globs or find - Use
[[over[— more features, fewer gotchas - ShellCheck for linting — catch common mistakes
Naming Conventions (Preview)
| Element | Convention | Example |
|---|---|---|
| Functions | lowercase_with_underscores | get_user_count |
| Variables | lowercase_with_underscores | user_count |
| Constants | UPPER_SNAKE_CASE | MAX_RETRIES |
| Environment vars | UPPER_SNAKE_CASE | PATH |
Basic Patterns (Preview)
#!/bin/bash
# ✓ CORRECT
set -euo pipefail # Exit on error, undefined vars, pipe failures
readonly SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
function main() {
local user_count="$1"
if [[ -z "${user_count}" ]]; then
echo "Error: user_count required" >&2
return 1
fi
echo "Processing ${user_count} users"
}
main "$@"
When to Use This Guide
- Writing new shell scripts
- Refactoring existing scripts
- Code reviews
- Setting up ShellCheck
- Onboarding new team members
Install
npx skills add testdino-hq/google-styleguides-skills/shell
Full Guide
See shell.md for complete details, examples, and edge cases.