writing-shell-scripts
Applies Bash style conventions when creating or editing shell scripts. Use when: (1) creating new shell scripts, (2) editing existing scripts in /bin/, or (3) reviewing Bash code for bugs or style issues.
Installation
Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.
View source ↗GuidesSkill instructions
Bash Style Guide
Apply the Bash conventions from ./references/BASH.md when creating or editing shell scripts.
Key Conventions
Read ./references/BASH.md for the complete guide. Summary:
Script Structure
- Shebang:
#!/usr/bin/env bash - Strict mode:
set -euo pipefail - Main function called at end:
main "${@}"
Naming
- Functions:
snake_case - Local variables:
lower_case - Constants:
ALL_CAPSwithreadonly
Syntax
- Variable expansion:
${var}not$var - Command substitution:
$(...)not backticks - Tests:
[[...]]not[...] - Function syntax:
function name() { }with both keyword and parentheses
Quoting
- Always quote variable expansions:
"${var}" - Always quote command substitutions:
"$(cmd)" - Use arrays for lists, not word splitting
Local Variables
- Declare with
local - Separate declaration from command substitution to preserve exit codes
Validation
Whenever possible, validate the script before finishing. Prefer using a project-specific validation script, if available. Common locations include declarations in package.json and scripts stored in bin/. If those aren't present, shellcheck is a commonly available linter for shell scripts.
Examples
Read the usage examples in the source repository.
View source ↗Source history
- Indexed on
- 2026-01-20
- Index updated
- 2026-01-26
- Branch
- main
Index and sync dates describe this directory. View the source repository for code history.
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!