Recherche de site Web

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


Le script shell est la forme de programmation la plus simple que vous pouvez apprendre/faire sous Linux. Plus encore, il s’agit d’une compétence requise pour l’administration système afin d’automatiser des tâches, de développer de nouveaux utilitaires/outils simples, pour n’en citer que quelques-uns.

Dans cet article, nous allons partager 10 conseils utiles et pratiques pour écrire des scripts bash efficaces et fiables, notamment :

1. Utilisez toujours des commentaires dans les scripts

Il s’agit d’une pratique recommandée qui n’est pas seulement appliquée aux scripts shell, mais à tous les autres types de programmation. Écrire des commentaires dans un script vous aide, vous ou quelqu’un d’autre 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. Effectuer la sortie d’un 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 en cas d’échec d’une commande :

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

3. Effectuer la sortie d’un 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. Par conséquent, utilisez la ligne suivante pour indiquer à 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 les 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 (concernant les espaces) et le globbing inutile (reconnaissance et développement des caractères génériques).

Découvrez 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-le, puis exécutez-le comme suit :

$ ./names.sh

5. Utiliser les fonctions dans les scripts

À l’exception des très petits scripts (avec quelques lignes de code), n’oubliez jamais d’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 suit :

check_root(){ command1; command2; }

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

Notez que == est un synonyme de =, donc n’utilisez qu’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 $ (commande) au lieu des guillemets 'commande' 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. Utiliser la lecture seule pour déclarer des variables statiques

Une variable statique ne change pas ; Sa valeur ne peut pas être modifiée une fois qu’elle est définie dans un script :

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

9. Utilisez des noms en majuscules pour les variables ENVIRONMENT 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 ci-dessous :

  1. Comment activer le mode de débogage de script shell sous Linux
  2. Comment effectuer la vérification de la syntaxe en mode de débogage dans les scripts shell
  3. Comment suivre l’exécution de commandes dans un script shell avec le traçage shell

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

Articles connexes: