Script shell

Résolu
pharaon44 Messages postés 38 Date d'inscription   Statut Membre Dernière intervention   -  
pharaon44 Messages postés 38 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Contributeur Dernière intervention   6 431
 
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   Statut Membre Dernière intervention   1
 
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