Script shell
Résolu
pharaon44
Messages postés
40
Statut
Membre
-
pharaon44 Messages postés 40 Statut Membre -
pharaon44 Messages postés 40 Statut Membre -
Bonjour à tous,
J'essaye de faire un script qui me permet de comparer l'ID d'une clé USB avec l'ID d'une clé que j'autorise à monter sur ma station OpenBSD.
Je bloque sur la condition:
#!/bin/bash
# initialisation des variables
s1=07411F110269
ID="$(usbdevs -v | grep iSerialNumber | awk '{print $NF}')"
if [$ID -eq $s1]
then
echo "test ok"
else
echo "test pas ok"
fi
exit 0
Lorsque je fais des echo pour voir ce que j'ai dans mes variables, j'ai bien la même chose dans les deux. Par contre, j'ai le message d'erreur suivant:
./test[19]: [07411F110269: not found
Est-ce que quelqu'un aurait une idée?
Merci d'avance
Cordialement
J'essaye de faire un script qui me permet de comparer l'ID d'une clé USB avec l'ID d'une clé que j'autorise à monter sur ma station OpenBSD.
Je bloque sur la condition:
#!/bin/bash
# initialisation des variables
s1=07411F110269
ID="$(usbdevs -v | grep iSerialNumber | awk '{print $NF}')"
if [$ID -eq $s1]
then
echo "test ok"
else
echo "test pas ok"
fi
exit 0
Lorsque je fais des echo pour voir ce que j'ai dans mes variables, j'ai bien la même chose dans les deux. Par contre, j'ai le message d'erreur suivant:
./test[19]: [07411F110269: not found
Est-ce que quelqu'un aurait une idée?
Merci d'avance
Cordialement
2 réponses
-
Salut,
"-eq" c'est que pour des nombres, dans ton cas il faut comparer avec le caractère "=" (comparaison). Il faut aussi des espaces avant et après les crochets. Avec des crochets simples il vaut mieux quoter les variables.
if [ "$ID" = "$s1" ]
-
Merci zipe31 pour ta réponse rapide, j'avoue que j'avais testé le " = " mais les espaces étaient la source de mon erreur.
Encore merci!!