Probleme de conditions avec Shell ( bash )

Résolu/Fermé
ax+b - 2 mai 2010 à 13:17
 ax+b - 2 mai 2010 à 13:38
Bonjour, voila, j'ai un probleme vraiment simple a resoudre pour vous autre, mais moi je n'y arrive pas ; (.

J'ai une commande comme ceci :

mavariable=$(zenity --entry --title="Montitre" --text="montexte")

echo $mavariable
...

Ce que je voudrais faire, c'est une condition, juste en dessous, qui donnerait :

Si la chaine de caractere tapée ne commence pas par : "javascript" Alors :

zenity --error

exit 0;

pouvez vous m'aider s'il vous plait ?
merci d'avance !

5 réponses

Mihawk
Messages postés
4311
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
842
2 mai 2010 à 13:21
Salut,
Tu dois pouvoir utiliser les expressions régulières :
https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql/916990-les-expressions-regulieres-partie-1-2

En l'occurence, utiliser par exemple : #^javascript#
Le circonflexe stipule que tu recherche ça en début de chaine.
En php tu as une fonction preg_match("#^javascript#", machainedecaractère)
qui renvoie vrai si le mot recherché est trouvé.
0
Merci, mais es tu sur que du code PHP fonctionne dans un script Bash ?
Par exemple:

#^javascript# pour moi c'est un commentaire mais pour toi c'est une "commande "

Est ce que je n'aurai pas plutot besoin d'une condition du type :

if ( la condition) then

ma commande

fi

?
0
jipicy
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 898
2 mai 2010 à 13:35
Salut,

mavariable=$(zenity --entry --title="Montitre" --text="montexte") 
grep -q '^javascript' <<<${mavariable}
if [ "$?" = "1" ]
then
zenity --error
exit 0
fi
0
Mihawk
Messages postés
4311
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
842
2 mai 2010 à 13:38
Si bien sûr !
Je pense que ça donnerait quelque chose du genre :

if [ $mavariable !=~ #^javascript# ] then
  zenity --error
  exit 0; 
fi


Mais je ne suis pas sûr de la syntaxe exacte. Il faudrait recherche sur un site de codage en bash. Teste ça et dis moi ce qu'il en est.
Bon courage !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Merci beaucoup ça fonctionne !
A bientôt !
0