Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/05/2007, 19h46   #1
Membre Expert
 
damien
Inscription : mars 2005
Messages : 1 680
Détails du profil
Informations personnelles :
Nom : damien
Âge : 27

Informations forums :
Inscription : mars 2005
Messages : 1 680
Points : 1 849
Points : 1 849
Par défaut comparer deux chaînes

bonjour,
ma question à l'aire simple pourtant...
je voudrai lancer un script qui effectue diverses opérations sur une clé usb
pour cela il faut la monter, et donc connaitre le point de montage...
en gros c'est soit /dev/sda soit /dev/sdb
je pensais donc faire un fdisk -l /dev/sda et comparer avec ce que cela me donne si c'est la clé usb (en sda)

j'ai donc deux valeurs, une qui recois ce que renvois la commande fdisk
et une autre qui est la valeur attendus ("Disk ... 255 ....")

seulement si je fais
Code :
1
2
3
4
5
6
if [ "$valeur1" = "$valeur2"  ];
then
 echo "identique"
else
 echo "non"
fi
j'ai toujours non qui s'affiche...
pourtant si j'affiche les valeurs celles-ci sont bien les même en tout points...

merci de votre aide
__________________
dam's
dams78 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/05/2007, 20h09   #2
Rédacteur
 
Avatar de Arnaud F.
 
Homme Arnaud Feltz
Développeur .NET
Inscription : août 2005
Messages : 5 204
Détails du profil
Informations personnelles :
Nom : Homme Arnaud Feltz
Âge : 25
Localisation : France

Informations professionnelles :
Activité : Développeur .NET
Secteur : Transports

Informations forums :
Inscription : août 2005
Messages : 5 204
Points : 6 113
Points : 6 113
Salut,

Les opérateurs de comparaisons en Shell ne sont pas les opérateurs classiques.

Mais pour comparer des entiers, on utilise :
-eq equals (=)
-neq non-equals (!=)
-gt greather than (>)
-lt lesser than (<)

etc.

++
__________________
C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

Installation de Code::Blocks sous Debian à partir de Nightly Builds
Arnaud F. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2007, 10h00   #3
Rédacteur/Modérateur
 
Avatar de Michaël
 
Michaël Todorovic
Ingénieur systèmes et réseaux
Inscription : juillet 2003
Messages : 3 493
Détails du profil
Informations personnelles :
Nom : Michaël Todorovic
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux

Informations forums :
Inscription : juillet 2003
Messages : 3 493
Points : 5 899
Points : 5 899
les opérateurs standards fonctionnent aussi


dams78, tu as fait l'erreur classique dans les comparaisons.
un seul = attribution d'une valeur à une variable
deux = comparaison pour savoir si c'est égal


donc ton code corrigé est
Code :
1
2
3
4
5
6
if [ "$valeur1" == "$valeur2"  ];
then
 echo "identique"
else
 echo "non"
fi
Michaël est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2007, 07h30   #4
Membre émérite
 
Inscription : juin 2006
Messages : 1 117
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : juin 2006
Messages : 1 117
Points : 989
Points : 989
On pourrait aussi l'écrire
Code :
1
2
3
4
5
6
if [ -eq "$valeur1"  "$valeur2"  ];
then
 echo "identique"
else
 echo "non"
fi
ou
Code :
1
2
3
4
5
6
if [ ! -neq "$valeur1"  "$valeur2"  ];
then
 echo "identique"
else
 echo "non"
fi
-gt (greather than) et -lt (plus petit que) sont des opérateurs qui concernent la taille des chaînes ? Sinon, comment fonctionne l'indexation alphabétique ?
kromartien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2007, 07h55   #5
Membre Expert
 
damien
Inscription : mars 2005
Messages : 1 680
Détails du profil
Informations personnelles :
Nom : damien
Âge : 27

Informations forums :
Inscription : mars 2005
Messages : 1 680
Points : 1 849
Points : 1 849
merci pour vos réponses, ca va bien m'aider
__________________
dam's
dams78 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h52.


 
 
 
 
Partenaires

Hébergement Web