Bonjour je suis un débutant dans la programmation shell, bref je sais pas si c'est de la programmation shell mais j'ai un souci de compréhension du cours. Cela porte sur un exemple. Et c'est le début du cours. C'est sur un exemple de script relativement simple. J'ai saisi quelque points et concepts mais je n'arrive pas a cerné tous les points. Voici le code :
set -x
if [ "$1" = "-h" ]
then
shift
echo bonjour monsieur $1
elif [ "$1" = "-f" ]
then
shift
echo bonjour madame $1
else
echo erreur de commande
fi
Donc je vois pas a quoi sert le set -x. D'après mes recherches set c'est comme une variable qui va prendre la valeur $1 ? pourquoi $1 et pas $0 ?
Si on tape par exemple la cmd : sh dis_bonjour -h Pierre. Ici la commande c'est juste sh ? donc sh=$0 et dis_bonjour=$1 ?
après le shift ça décale la valeur et echo c'est pour afficher.
Pour le coup j'avais jamais utilisé set, et il semble qu'avec l'option -x ça active un genre de mode "debug" qui affiche plein d'infos utiles comme l'état des variables, les étapes importantes du script (chaque tour de boucle...).
shift décale la numérotation des arguments passés au script. L'exemple est un peu pourri parce que quand on a que deux arguments c'est beaucoup plus simple de les appeler directement '$1' et '$2', mais bon...
En gros quand on appelle shift, $1 prend la valeur de $2, $2 prend la valeur de $3, $3 la valeur de $4, etc...
Dans ton exemple $0 devrait avoir comme valeur "dis_bonjour" (je viens de faire le test sur ma machine).
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Blond, bouclé, toujours le sourire aux lèvres...