Script shell

Résolu/Fermé
pharaon44 Messages postés 38 Date d'inscription lundi 30 août 2010 Statut Membre Dernière intervention 19 juin 2012 - 17 oct. 2011 à 15:32
pharaon44 Messages postés 38 Date d'inscription lundi 30 août 2010 Statut Membre Dernière intervention 19 juin 2012 - 17 oct. 2011 à 15:48
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
A voir également:

2 réponses

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 417
17 oct. 2011 à 15:40
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" ]
0
pharaon44 Messages postés 38 Date d'inscription lundi 30 août 2010 Statut Membre Dernière intervention 19 juin 2012 1
17 oct. 2011 à 15:48
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!!
0