Scripting Bash

VérifiéSûr

Maîtrise du scripting Bash défensif pour l'automatisation de production, les pipelines CI/CD et les utilitaires système. Expert en scripts shell sûrs, portables et testables.

Spar Skills Guide Bot
DeveloppementIntermédiaire
22/07/2026
Claude CodeCursorWindsurfCopilotCodex
#bash#shell-scripting#ci-cd#defensive-programming#shellcheck#automation

Recommandé pour

Synthèse automatique

Guide de référence pour écrire des scripts Bash défensifs et portables destinés à la production, à l'automatisation et aux pipelines CI/CD.

Points forts

  • Couvre le mode strict (`set -Eeuo pipefail`), le quoting systématique et les traps de nettoyage des ressources temporaires
  • Inclut une checklist qualité précise : ShellCheck, shfmt, tests Bats, validation des entrées et support de `--help`
  • Traite explicitement la portabilité Linux/macOS, la sécurité des entrées et les pièges courants comme l'itération sur `$(ls)`
  • Renvoie vers des fiches d'approfondissement thématiques (performance, sécurité, techniques avancées, outils)

Limites

  • Le contenu principal reste un sommaire : les détails résident dans des fichiers de référence externes non fournis ici
  • Ne couvre pas les alternatives comme Python, Go ou les générateurs de configuration pour des besoins d'automatisation complexes
  • Suppose une familiarité préalable avec les concepts shell (tableaux, expansions, codes de retour)
Quand l'utiliser

À utiliser dès qu'il faut rédiger ou durcir un script shell pour l'automatisation, le déploiement ou une étape de CI/CD.

Quand l'éviter

À éviter pour des tâches jetables en une ligne ou lorsque la logique métier dépasse ce qu'un script shell peut maintenir raisonnablement.

Analyse de sécurité

Sûr
Score qualité92/100

The skill is instructional and focused on defensive Bash practices, portability, testing, and CI/CD. Although it allows Bash and mentions commands like rm -rf, those are presented as safety examples with proper quoting and option termination; there are no destructive, exfiltrating, obfuscated, or safety-disabling instructions.

Aucun point d'attention détecté

Comment cette analyse est faite

Exemples

New deployment script
Write a production-grade bash deployment script that builds the app, uploads it via rsync, and restarts the service. Use strict mode, proper error handling, and a dry-run flag.
Harden an existing script
Review this bash script for defensive programming issues: quoting, error handling, temp file cleanup, and ShellCheck warnings. Then rewrite it with fixes.
CI/CD test job
Create a bash script for our CI pipeline that runs tests, generates a coverage report, and exits non-zero on any failure. Add Bats tests for it.

name: bash-scripting description: Master of defensive Bash scripting for production automation, CI/CD pipelines, and system utilities. Expert in safe, portable, and testable shell scripts. Use when writing, creating, authoring, generating, or developing bash scripts, shell scripts, or automation. Also triggers for learning bash best practices, understanding defensive programming patterns, implementing error handling, ensuring portability, following shellcheck recommendations, or applying production-grade bash standards. Helps with CI/CD scripts, system utilities, deployment automation, and production bash code. allowed-tools: [Read, Edit, Write, Grep, Glob, Bash]

Reference Files

Deep-dive guides for specific topics:


Bash Scripting

Master guide for defensive Bash scripting following production-grade best practices. This skill provides comprehensive patterns, standards, and techniques for writing safe, portable, and maintainable shell scripts for automation, CI/CD pipelines, and system utilities.

Use this skill when writing new bash scripts or improving existing ones to follow defensive programming principles.

Focus Areas

  • Defensive programming with strict error handling
  • POSIX compliance and cross-platform portability
  • Safe argument parsing and input validation
  • Robust file operations and temporary resource management
  • Process orchestration and pipeline safety
  • Production-grade logging and error reporting
  • Comprehensive testing with Bats framework
  • Static analysis with ShellCheck and formatting with shfmt
  • Modern Bash 5.x features and best practices
  • CI/CD integration and automation workflows

Core Approach

Essential defensive programming patterns (see patterns-and-conventions.md for complete details):

  • Strict mode: Always use set -Eeuo pipefail with error trapping
  • Quote variables: Prevent word splitting and globbing issues
  • Safe iteration: Use proper arrays, avoid for f in $(ls)
  • Conditionals: Use [[ ]] for Bash, [ ] for POSIX
  • Temp files: Create safely with mktemp and cleanup traps
  • Output: Prefer printf over echo for reliability
  • Input validation: Check required variables with : "${VAR:?message}"
  • Safe operations: End option parsing with --, use rm -rf -- "$dir"
  • NUL-safe patterns: Use find -print0 | while IFS= read -r -d '' for filenames
  • Logging: Implement structured logging with configurable verbosity
  • Idempotency: Design scripts to be repeatable and support dry-run modes

Quality Checklist

  • Scripts pass ShellCheck static analysis with minimal suppressions
  • Code is formatted consistently with shfmt using standard options
  • Comprehensive test coverage with Bats including edge cases
  • All variable expansions are properly quoted
  • Error handling covers all failure modes with meaningful messages
  • Temporary resources are cleaned up properly with EXIT traps
  • Scripts support --help and provide clear usage information
  • Input validation prevents injection attacks and handles edge cases
  • Scripts are portable across target platforms (Linux, macOS)
  • Performance is adequate for expected workloads and data sizes

Output

Production-ready deliverables:

  • Bash scripts with defensive programming practices
  • Test suites using bats-core or shellspec with TAP output
  • CI/CD pipeline configurations for automated testing
  • Documentation (shdoc markdown, shellman man pages)
  • Static analysis configuration (.shellcheckrc, .shfmt.toml)
  • Security review with SAST and secrets scanning
  • Structured logging and observability

Where to Find What

Du fichier au premier essai

Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.

Consulter la source et ses fichiers annexes

Ce téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.

1. Télécharger le fichier

Télécharger SKILL.md

Depuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/bash-scripting-mrwakbbr/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.

Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.

mkdir -p '.skill-downloads/bash-scripting-mrwakbbr' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/bash-scripting-mrwakbbr/download' --output '.skill-downloads/bash-scripting-mrwakbbr/SKILL.md.part' && mv '.skill-downloads/bash-scripting-mrwakbbr/SKILL.md.part' '.skill-downloads/bash-scripting-mrwakbbr/SKILL.md'

2. Vérifier les prérequis

Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.

Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.

Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.

3. Charger la skill

Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.

Claude Code
test -f '.skill-downloads/bash-scripting-mrwakbbr/SKILL.md' && test -s '.skill-downloads/bash-scripting-mrwakbbr/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/bash-scripting' && cp -R '.skill-downloads/bash-scripting-mrwakbbr' '.claude/skills/bash-scripting'

Cursor
test -f '.skill-downloads/bash-scripting-mrwakbbr/SKILL.md' && test -s '.skill-downloads/bash-scripting-mrwakbbr/SKILL.md' && mkdir -p '.cursor/skills' && test ! -e '.cursor/skills/bash-scripting' && cp -R '.skill-downloads/bash-scripting-mrwakbbr' '.cursor/skills/bash-scripting'

Codex
test -f '.skill-downloads/bash-scripting-mrwakbbr/SKILL.md' && test -s '.skill-downloads/bash-scripting-mrwakbbr/SKILL.md' && mkdir -p '.agents/skills' && test ! -e '.agents/skills/bash-scripting' && cp -R '.skill-downloads/bash-scripting-mrwakbbr' '.agents/skills/bash-scripting'

OpenSkills

OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.

Installation officielle d’OpenSkills
openskills install './.skill-downloads/bash-scripting-mrwakbbr'

openskills read 'bash-scripting-mrwakbbr'

La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.

Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.

openskills sync

Mode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.

4. Faire un premier essai

Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :

Lis .skill-downloads/bash-scripting-mrwakbbr/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.

Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.

Skills similaires