Script shell - besoin d'aide
Résolu
charline159
Messages postés
208
Date d'inscription
Statut
Membre
Dernière intervention
-
charline159 Messages postés 208 Date d'inscription Statut Membre Dernière intervention -
charline159 Messages postés 208 Date d'inscription Statut Membre Dernière intervention -
Bonjour! J'ai fait ce petit script shell... et pour résumer:
- si les deux paramètres rentrés par l'utilisateur sont pareils, alors j'affiche un message pour dire qu'ils sont identiques;
- s'ils sont différents, alors le message indique qu'ils sont différents;
- si l'utilisateur a rentré un nombre de paramètres différents de deux (aucun, un seul ou plus de deux paramètres) alors le message lui indique qu'il n'a pas rentré deux paramètres.
Et donc quand j'exécute le script, la troisième condition ne marche pas, et je ne sais pas pourquoi: si je tape le script sans paramètre, alors je vais avoir un message qui m'indique "les deux paramètres sont identiques".
Est-ce que quelqu'un aurait une solution à ça svp?
Merci pour votre aide!
- si les deux paramètres rentrés par l'utilisateur sont pareils, alors j'affiche un message pour dire qu'ils sont identiques;
- s'ils sont différents, alors le message indique qu'ils sont différents;
- si l'utilisateur a rentré un nombre de paramètres différents de deux (aucun, un seul ou plus de deux paramètres) alors le message lui indique qu'il n'a pas rentré deux paramètres.
#!/bin/bash
if [ $1 = $2 ]
then
echo "Les deux paramètres sont identiques."
elif [ $1 != $2 ]
then
echo "Les deux paramètres sont différents."
elif [ ! $# -eq 2 ]
then
echo "Vous n'avez pas rentré deux paramètres."
fi
Et donc quand j'exécute le script, la troisième condition ne marche pas, et je ne sais pas pourquoi: si je tape le script sans paramètre, alors je vais avoir un message qui m'indique "les deux paramètres sont identiques".
Est-ce que quelqu'un aurait une solution à ça svp?
Merci pour votre aide!
A voir également:
- Script shell - besoin d'aide
- Classic shell - Télécharger - Personnalisation
- Script vidéo youtube - Guide
- Mas script - Accueil - Windows
- Ghost script - Télécharger - Polices de caractères
- Script cmd - Guide
1 réponse
Salut,
Il faut placer ta condition qui teste le nombre de paramètre en 1er !
De plus, la condition de test du nombre de paramètre doit s'écrire
Il faut placer ta condition qui teste le nombre de paramètre en 1er !
De plus, la condition de test du nombre de paramètre doit s'écrire
[ $# -ne 2 ];-\
#!/bin/bash if [ $# -ne 2 ] then echo "Vous n'avez pas rentré deux paramètres." elif [ $1 = $2 ] then echo "Les deux paramètres sont identiques." elif [ $1 != $2 ] then echo "Les deux paramètres sont différents." fi
Dois-je en conclure qu'il faut toujours mettre les "cas particuliers" (si l'utilisateur n'a pas correctement indiqué ce qu'il faut) en première condition?
J'ai encore une question: à présent, je souhaite qu'on m'indique si le nombre que je rentre est trop grand ou trop petit.
Et donc, cette fois, comment faire pour que mon script prenne en compte plusieurs chiffres/nombres en même temps? Comme ça, si je tapais par exemple 3 nombres en même temps, il m'afficherait 3 messages d'affilées d'un coup...