Recherche de site Web

10 conseils utiles pour écrire des scripts Bash efficaces sous Linux


Les scripts Shell sont la forme de programmation la plus simple que vous puissiez apprendre/faire sous Linux. Plus encore, il s'agit d'une compétence requise pour l'administration système pour automatiser les tâches, développer de nouveaux utilitaires/outils simples, pour n'en citer que quelques-uns.

Dans cet article, nous partagerons 10 conseils utiles et pratiques pour écrire des scripts bash efficaces et fiables. Ils incluent :

1. Utilisez toujours les commentaires dans les scripts

Il s'agit d'une pratique recommandée qui s'applique non seulement aux scripts shell mais à tous les autres types de programmation. Écrire des commentaires dans un script vous aide, vous ou toute autre personne qui parcourt votre script, à comprendre ce que font les différentes parties du script.

Pour commencer, les commentaires sont définis à l'aide du signe #.

#TecMint is the best site for all kind of Linux articles

2. Effectuez une sortie de script en cas d'échec

Parfois, bash peut continuer à exécuter un script même lorsqu'une certaine commande échoue, affectant ainsi le reste du script (peut éventuellement entraîner des erreurs logiques). Utilisez la ligne ci-dessous pour quitter un script lorsqu'une commande échoue :

#let script exit if a command fails
set -o errexit 
OR
set -e

3. Effectuez une sortie de script lorsque Bash utilise une variable non déclarée

Bash peut également essayer d'utiliser un script non déclaré, ce qui pourrait provoquer une erreur logique. Utilisez donc la ligne suivante pour demander à bash de quitter un script lorsqu'il tente d'utiliser une variable non déclarée :

#let script exit if an unsed variable is used
set -o nounset
OR
set -u

4. Utilisez des guillemets doubles pour référencer des variables

L'utilisation de guillemets doubles lors du référencement (en utilisant la valeur d'une variable) permet d'éviter le fractionnement des mots (en ce qui concerne les espaces) et l'globulation inutile (reconnaissance et expansion des caractères génériques).

Consultez l'exemple ci-dessous :

#!/bin/bash
#let script exit if a command fails
set -o errexit 

#let script exit if an unsed variable is used
set -o nounset

echo "Names without double quotes" 
echo
names="Tecmint FOSSMint Linusay"
for name in $names; do
        echo "$name"
done
echo

echo "Names with double quotes" 
echo
for name in "$names"; do
        echo "$name"
done

exit 0

Enregistrez le fichier et quittez, puis exécutez-le comme suit :

./names.sh

5. Utiliser des fonctions dans les scripts

Sauf pour les très petits scripts (avec quelques lignes de code), pensez toujours à utiliser des fonctions pour modulariser votre code et rendre les scripts plus lisibles et réutilisables.

La syntaxe d'écriture des fonctions est la suivante :

function check_root(){
	command1; 
	command2;
}

OR
check_root(){
	command1; 
	command2;
}

Pour le code sur une seule ligne, utilisez des caractères de fin après chaque commande comme ceci :

check_root(){ command1; command2; }

6. Utilisez=au lieu de == pour les comparaisons de chaînes

Notez que == est un synonyme de =, utilisez donc uniquement un seul = pour les comparaisons de chaînes, par exemple :

value1=”linux-console.net”
value2=”fossmint.com”
if [ "$value1" = "$value2" ]

7. Utilisez $ (commande) au lieu de la « commande » héritée pour la substitution

La substitution de commande remplace une commande par sa sortie. Utilisez $ (command) au lieu des guillemets `command` pour la substitution de commande.

Ceci est recommandé même par l'outil shellcheck (affiche des avertissements et des suggestions pour les scripts shell). Par exemple:

user=`echo “$UID”`
user=$(echo “$UID”)

8. Utilisez la lecture seule pour déclarer des variables statiques

Une variable statique ne change pas ; sa valeur ne peut plus être modifiée une fois définie dans un script :

readonly passwd_file=”/etc/passwd”
readonly group_file=”/etc/group”

9. Utilisez des noms en majuscules pour les variables d'ENVIRONNEMENT et en minuscules pour les variables personnalisées

Toutes les variables d'environnement bash sont nommées avec des lettres majuscules, utilisez donc des lettres minuscules pour nommer vos variables personnalisées afin d'éviter les conflits de noms de variables :

#define custom variables using lowercase and use uppercase for env variables
nikto_file=”$HOME/Downloads/nikto-master/program/nikto.pl”
perl “$nikto_file” -h  “$1”

10. Effectuez toujours le débogage pour les scripts longs

Si vous écrivez des scripts bash avec des milliers de lignes de code, trouver des erreurs peut devenir un cauchemar. Pour résoudre facilement les problèmes avant d'exécuter un script, effectuez un débogage. Maîtrisez cette astuce en lisant les guides fournis ci-dessous :

  1. Comment activer le mode de débogage de script Shell sous Linux
  2. Comment effectuer le mode de débogage de vérification de syntaxe dans les scripts Shell
  3. Comment tracer l'exécution des commandes dans un script Shell avec Shell Tracing

C'est tout! Avez-vous d'autres bonnes pratiques de script bash à partager ? Si oui, utilisez le formulaire de commentaires ci-dessous pour ce faire.