Vérifier vos scripts Shell avec ShellCheck

Article publiée le 16 Avril 2014

 

Une petite découverte forte sympathique!

Un collègue vient de me montrer un outil absolument génial qui permet de vérifier vos scripts shell (Variable non initialisée, erreur de synthaxe etc…) et je dois dire que cet outil s’est montré très performant voir bleuffant!

Cette outil s’appelle ShellCheck.

Vous avez la version online ici disponible sur ce site: http://www.shellcheck.net/

De plus il est également possible de télécharger une version local installé sur un de vos serveurs. Vous pourrez donc en une commande checker vos scripts!

Pour cela allez sur le site pour récupérer les sources: https://github.com/koalaman/shellcheck

 

– Dézipper l’archive zip

unzip -e <nom de l’archive>

– Aller dans le répertoire contenant les sources

– Installez ensuite les dépendances nécessaires:

 

Sous Debian:

– apt-get install ghc libghc-parsec3-dev lightghc-json-dev lightghc-regex-compat-dev libghc-quickcheck2-dev pandoc

 

Sous Centos/RedHat

– Installez les dépots EPEL. (tutoriel disponible ici)

– yum install ghc ghc-parsec-devel ghc-QuickCheck-devel ghc-json-devel ghc-regex-compat-devel pandoc

Le package pandoc n’est pas indiqué dans la documentation officielle, il est cependant nécessaire de l’installer!

 

– Il ne reste plus qu’à compiler:

make

– Copier le binaire dans /usr/bin

La commande shellcheck est maintenant disponible.

 

Faisons un petit test  avec un script contenant une erreur (par de fermeture de la condition if avec fi).

Contenu du script

– Vérifions avec shellcheck le script:

– Nous allons maintenant tester shellcheck avec une erreur un peu plus subtile (variable initialisé mais non utilisée):

Contenu du script

Résultat avec shellcheck:

Shellcheck  relève l’erreur!(en rouge les erreurs critiques, en vert les erreurs non critiques)

Enjoy! 🙂