Afficher l’utilisation du script Bash
Est-il recommandé d’inclure l’utilisation dans chaque script Bash que vous créez. Cela donne à l’utilisateur une idée des options attendues par le script, afin qu’il puisse l’utiliser comme prévu. Cela donne également au script une certaine capacité de vérification des erreurs pour s’assurer que l’utilisateur a fourni les arguments de la manière attendue.
Dans ce tutoriel, vous allez apprendre quelques méthodes différentes pour montrer l’utilisation du script Bash, vérifier quel utilisateur exécute le script et vérifier le nombre actuel d’arguments sur Linux.
Dans ce tutoriel, vous allez apprendre :
- Comment montrer l’utilisation du script Bash avec
ifet$@ - Comment montrer l’utilisation du script Bash avec
getopts - Comment afficher l’utilisation du script Bash lorsqu’une option non reconnue est saisie
- Comment vérifier que le bon nombre d’options est passé au script Bash
- Comment vérifier si l’utilisateur root exécute un script Bash
Afficher l’utilisation du script Bash
Il existe plusieurs façons d’afficher l’utilisation du script à l’intérieur de votre script Bash. Une façon consiste à vérifier si l’utilisateur a fourni les options -h ou --help comme arguments, comme indiqué ci-dessous.
#!/bin/bash
check whether user had supplied -h or --help . If yes display usage
if [[ ( $@ == "--help") || $@ == "-h" ]]
then
echo "Usage: $0 [arguments]"
exit 0
fi
echo "All good !!!"Maintenant, notre instruction if contenant l’utilisation de Bash n’est déclenchée que lorsque --help OR -h est fourni.
./test.sh
All good !!!
./test.sh --help
Usage: ./test.sh [arguments]
La prochaine façon de fournir cette fonctionnalité est d’utiliser getopts. L’exemple suivant fera la même chose que notre script précédent, mais a l’avantage supplémentaire d’afficher l’utilisation chaque fois que l’utilisateur fournit une option non valide.
#!/bin/bash
while getopts 'lh' OPTION; do
case "$OPTION" in
l)
echo "linuxconfig"
;;
h)
echo "script usage: $(basename \$0) [-l] [-h]" >&2
exit 0
;;
?)
echo "script usage: $(basename \$0) [-l] [-h]" >&2
exit 1
;;
esac
doneLe script ci-dessus peut accepter l’option -l. Si l’option -h est fournie à la place, l’utilisation du script Bash est affichée. Si une autre option est passée au script et que le script ne la reconnaît pas, l’utilisation de Bash sera également affichée dans ce cas.
./test.sh -l
linuxconfig
./test.sh -h
script usage: $0 [-l] [-h]
./test.sh -s
./test.sh: illegal option -- s
script usage: $0 [-l] [-h]
Nous avons plus d’informations sur cette méthode dans notre tutoriel sur : Script Bash : Utilisation des drapeaux avec des exemples d’arguments.
Parfois, il est nécessaire de vérifier quel utilisateur exécute le script Bash et si l’utilisateur a fourni tous les arguments requis. Dans ce cas, un script plus étoffé comme celui-ci serait utile, qui vérifie plusieurs choses :
#!/bin/bash
display_usage() {
echo "This script must be run with super-user privileges."
echo -e "\nUsage: $0 [arguments] \n"
}
if less than two arguments supplied, display usage
if [ $# -le 1 ]
then
display_usage
exit 1
fi
check whether user had supplied -h or --help . If yes display usage
if [[ ( $@ == "--help") || $@ == "-h" ]]
then
display_usage
exit 0
fi
display usage if the script is not run as root user
if [[ "$EUID" -ne 0 ]]; then
echo "This script must be run as root!"
exit 1
fi
echo "All good !!!"Vous pouvez également être intéressé par nos tutoriels sur Bash Scripting : Arguments de ligne de commande et Script Bash : Nombre d’arguments passés au script.
Réflexions finales
Dans ce tutoriel, vous avez vu comment montrer l’utilisation du script Bash lorsqu’un utilisateur exécute le script sur un système Linux. Nous avons montré plusieurs méthodes pour cela, et la meilleure dépendra de votre situation et de la complexité de votre scénario. De plus, il est toujours bon de vérifier le nombre d’arguments passés et de vérifier quel utilisateur exécute le script.
