Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2100 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [Shell] test avec une variable

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Shell] test avec une variable

n°1730445
chico008
what the wookie says ?
Posté le 10-05-2008 à 10:29:46  profilanswer
 

Bonjour
 
Je suis en train de faire un petit script pour tester la presence ou non d'un service.
au debut je recupere directement le PID de mon process.
bien entendu si il est pas la, la variable sera donc vide.
 
mon problème se situe au niveau du test de la variable.
j'ai essayer ca :

Code :
  1. if ("$var1" != "" )
  2. then
  3. ...


j'ai essayer avec un -ne aussi, mais a chaque tentative j'ai un :
./menu.sh: line 3: xxxxx : commande introuvable
(xxxxx = le PID, car actuellement mon process est present)


---------------
Serveur HFR - OpenTTD
mood
Publicité
Posté le 10-05-2008 à 10:29:46  profilanswer
 

n°1730491
aigles
Posté le 10-05-2008 à 14:38:32  profilanswer
 

if [ -n "$var" ]
then
   echo "Process found"
fi


 
Jean-Pierre.


---------------
Jean Pierre.
n°1730500
chico008
what the wookie says ?
Posté le 10-05-2008 à 15:12:57  profilanswer
 

-n ? ca correspond a quoi ?
 
sinon effectivement ca marche.
 
et si je voulais tester la chaine toto dans ma variable je faisait comment ?

Message cité 1 fois
Message édité par chico008 le 10-05-2008 à 18:26:49

---------------
Serveur HFR - OpenTTD
n°1730569
aigles
Posté le 10-05-2008 à 23:55:07  profilanswer
 

chico008 a écrit :

-n ? ca correspond a quoi ?
 
sinon effectivement ca marche.
 
et si je voulais tester la chaine toto dans ma variable je faisait comment ?


-n permet de tester qu'une chaîne est non vide et -z qu'elle ne l'est.
 
Pour tester si une chaîne est égale à une valeur :

if [ "$var1" = "toto" ]

Si le test se fait sur des nombres on utilise -eq -gt -ge -lt -le, par exemple :

if [ "$var1" -eq 5 ]


 
Jean-Pierre.
 

n°1730580
chico008
what the wookie says ?
Posté le 11-05-2008 à 09:55:07  profilanswer
 

d'accord, merci pour tes explications ;)


---------------
Serveur HFR - OpenTTD
n°1731077
matafan
Posté le 13-05-2008 à 10:13:30  profilanswer
 

L'autre possibilité si tu veux vraiment utiliser -ne, c'est de faire :


if [ "x$var" -ne "x" ]
then
    ...


Le "x" permet d'éviter l'erreur que tu as quand $var est vide. Evidemment tu peux utiliser n'importe quelle charactère ou chaine à la place de "x". Le problème que tu avais c'est que si $var est vide, le shell voit l'expression if [ -ne ], qui n'est évidemment pas valide. Avec le "x" il verra if [ x -ne x ], qui est valide.
 
Mais bien sûr -n ou -z sont mieux adaptés à ce que tu veux faire.

n°1731326
Sve@r
Posté le 13-05-2008 à 20:13:32  profilanswer
 

matafan a écrit :

L'autre possibilité si tu veux vraiment utiliser -ne, c'est de faire :


if [ "x$var" -ne "x" ]
then
    ...


Le "x" permet d'éviter l'erreur que tu as quand $var est vide. Evidemment tu peux utiliser n'importe quelle charactère ou chaine à la place de "x". Le problème que tu avais c'est que si $var est vide, le shell voit l'expression if [ -ne ], qui n'est évidemment pas valide. Avec le "x" il verra if [ x -ne x ], qui est valide.


Tout d'abord le "-ne" est fait pour les numériques et je serais étonné qu'il accepte pour de l'alphanum. Par ailleurs, il y a plus simple

if [ "$var" != "" ]
then
    ...


Grace aux guillemets, même si var est vide le shell verra if [ "" != "" ] qui est tout aussi valide. Personnellement je préconise de toujours utiliser les guillemets doubles quand on teste de l'alphanum...


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1731573
matafan
Posté le 14-05-2008 à 11:30:08  profilanswer
 

Désolé j'étais à côté de la plaque.
 
En fait le problème c'est juste qu'il mettait des () au lieux de [].

n°1731577
chico008
what the wookie says ?
Posté le 14-05-2008 à 11:31:36  profilanswer
 

ouais.
je fait pas mal de PHP, c'est derivé du C, et comme linux c'est du C aussi, je pensait faire pareil, bah non.
au moin maintenant je saurais.
Merci pour votre aide et vos explications ;)


---------------
Serveur HFR - OpenTTD

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [Shell] test avec une variable

 

Sujets relatifs
Positionnement et hauteur variable en CSSlire valeur sous le shell
declaration d'une variable et newPerl :comment forcer une variable sur un certain nombre de caractères?
[word] contenu d'une variable en objectTest sur champ obligatoire
XSLT variable and JavascriptVB6+MySQL : Test de doublons
Mais où est passée ma variable? [Resolu]VB6 + MySQL : Test de doublons
Plus de sujets relatifs à : [Shell] test avec une variable


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)