Comment déboguer les scripts Linux Bash avec ShellCheck

Avez-vous des problèmes avec un script Bash que vous avez écrit pour votre PC Linux? Au lieu de parcourir d’innombrables threads sur StackExchange pour obtenir de l’aide à la programmation, envisagez d’utiliser l’outil ShellCheck pour déboguer les scripts Linux Bash et trouver automatiquement les erreurs dans votre code.

Obtenez ShellCheck

ShellCheck est un outil utile, mais il n’est pas livré avec votre système d’exploitation Linux prêt à l’emploi. Au lieu de cela, si vous souhaitez l’utiliser, vous devrez d’abord l’installer. Dans ce didacticiel, nous expliquerons comment installer ShellCheck à partir de diverses sources logicielles officielles. De plus, nous vous montrerons également comment faire fonctionner le programme via le binaire générique Linux.

Ouvrez une fenêtre de terminal et mettez à jour vos packages. Ensuite, suivez les instructions qui correspondent à votre système d’exploitation Linux.

Ubuntu

ShellCheck est dans les sources officielles du logiciel Ubuntu, donc son installation est assez facile. Dans un terminal, utilisez le gestionnaire de packages Apt et faites fonctionner la dernière version de ShellCheck.

sudo apt install shellcheck

Debian

Debian Stable a une ancienne version de ShellCheck prête à être installée par les utilisateurs. Gardez à l’esprit que cette version est retardée en raison de la façon dont Debian fait les choses.

  Comment créer une page de manuel sous Linux

Remarque: vous souhaitez une version plus récente du programme ShellCheck? Suivez notre guide et découvrez comment obtenir des logiciels plus modernes sur Debian.

sudo apt-get install shellcheck

Arch Linux

Pour obtenir ShellCheck sur Arch Linux, vous devez d’abord activer le référentiel de logiciels «Communauté». L’activation de «Communauté» nécessite la modification du fichier Pacman.conf. Pour modifier le fichier, ouvrez Pacman.conf dans Nano.

sudo nano /etc/pacman.conf

Faites défiler (avec les touches fléchées) et recherchez la section «Communauté» du fichier. Supprimez toutes les instances du symbole # (environ trois lignes). Ensuite, enregistrez les modifications en appuyant sur le bouton Ctrl + O.

Une fois les nouvelles modifications apportées à Pacman.conf prises en charge, appuyez sur Ctrl + X pour fermer Nano. Ensuite, resynchronisez Pacman pour configurer l’accès au référentiel Arch Linux «Community».

sudo pacman -Syyuu

Enfin, installez ShellCheck sur Arch Linux avec:

sudo pacman -S shellcheck

Feutre

Pour obtenir l’outil d’analyse de script ShellCheck sur Fedora Linux, ouvrez un terminal et utilisez l’outil de gestion de paquet DNF.

sudo dnf install ShellCheck

OpenSUSE

L’installation de ShellCheck sur OpenSUSE ne nécessite aucune étape particulière, comme c’est le cas dans les principales sources logicielles de la distribution. Pour l’obtenir, entrez la commande suivante du package Zypper dans une fenêtre de terminal.

sudo zypper install ShellCheck

Linux générique

Les utilisateurs de distributions Linux moins connues qui souhaitent accéder à l’outil d’analyse de script ShellCheck doivent installer la version binaire universelle. Heureusement, cette version binaire est facile à installer et ne nécessite aucun bricolage avec le code source. Pour le faire fonctionner, suivez les étapes ci-dessous!

  Comment rechercher et remplacer du texte et des nombres dans Excel

Étape 1: exportez la version de ShellCheck que vous êtes sur le point de télécharger dans votre environnement de terminal.

export scversion="stable" # or "v0.4.7", or "latest"

Étape 2: à l’aide de l’outil de téléchargement wget, récupérez la dernière version binaire ShellCheck.

wget "https://storage.googleapis.com/shellcheck/shellcheck-${scversion}.linux.x86_64.tar.xz"

Étape 3: extrayez l’archive ShellCheck TarXZ avec la commande tar.

tar --xz -xvf shellcheck-"${scversion}".linux.x86_64.tar.xz

Étape 4: installez ShellCheck sur votre PC Linux avec la commande cp.

cp shellcheck-"${scversion}"/shellcheck /usr/bin/

Déboguer des scripts avec ShellCheck

Le but principal de ShellCheck est d’examiner un script (généralement Bash), de détecter les commandes mal utilisées et de proposer des corrections. Pour une utilisation de base, procédez comme suit.

Tout d’abord, le CD sur lequel le script que vous souhaitez vérifier se trouve sur votre PC Linux. Dans ce tutoriel, notre script se trouve dans ~ / shell-scripts. Le vôtre peut différer.

cd ~/shell-scripts

Exécutez la commande ls et affichez tous les fichiers du répertoire en cours.

  Comment installer et utiliser Rapid Photo Downloader sous Linux

Remarque: si vous avez l’intention d’utiliser ShellCheck dans un répertoire avec plusieurs types de fichiers, c’est une bonne idée de combiner grep et ls ensemble. L’utilisation conjointe de ces deux commandes vous permet de filtrer tous les fichiers non script.

ls

Ou, combinez avec grep pour afficher uniquement les fichiers de script.

ls | grep ".sh"
ls | grep ".bash"

Recherchez le nom d’un fichier de script dans l’invite ls et mettez le nom du fichier en surbrillance avec la souris. Lorsque vous êtes prêt, exécutez-le via ShellCheck et vérifiez votre code.

shellcheck name-of-file.sh

ou

shellcheck name-of-file.bash

Immédiatement après l’exécution de la commande shellcheck, elle détectera les problèmes avec votre code et le placera dans l’invite du terminal. Lisez et apprenez comment améliorer votre programmation en suivant les suggestions qu’elle vous donne.

Enregistrer le rapport ShellCheck dans un fichier

Obtenir un rapport instantané dans le terminal pour votre programmation bash est très utile cependant, vous risquez de le perdre si vous fermez le terminal. Pour éviter de perdre votre rapport Shellcheck, nous vous recommandons d’enregistrer la sortie dans un fichier texte, en exécutant le programme en combinaison avec la fonction >> dans le terminal.

shellcheck name-of-file.sh >> ~/Documents/shellcheck-report-name-of-file.sh

ou

shellcheck name-of-file.bash >> ~/Documents/shellcheck-report-name-of-file.bash

Affichez votre rapport enregistré dans le terminal via la commande cat.

cat ~/Documents/shellcheck-report-name-of-file.sh | more

ou

cat ~/Documents/shellcheck-report-name-of-file.bash | more