Script shell

Résolu
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
A voir également:

2 réponses

zipe31 Messages postés 38797 Statut Contributeur 6 433
 
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 40 Statut Membre 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