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

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Linux bash : pourquoi ma condition ne fonctionne pas

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Linux bash : pourquoi ma condition ne fonctionne pas

n°1342084
Sndk
Hardcore Gamer
Posté le 25-07-2013 à 11:04:42  profilanswer
 

Bonjour à tous,
 
aujourd'hui une question très simple, je cherche à savoir pourquoi ma condition ne fonctionne pas, je suis en #!/bin/sh
je mets une valeur dans $tomcatversion (ici tomcat-7.0.30) ensuite je voudrais que si cette version contient *current* elle
fasse un truc sinon un autre  
 
tomcat ici peut avoir 2 valeurs : tomcat6-current ou tomcat-7.0.30 voici le script  
 

Citation :

function TomcatCurrentToReal {
if [[ $tomcatversion == "*current*" ]] ;
 then
  echo $tomcatversion
  tomcatversion=`ssh tomcat@$clustername "ls -lrt /ccv/app/tomcat/" | grep current | cut -d">" -f2 | cut -d"/" -f1`
  echo "CATALINA_HOME then:" $tomcatversion
   
 else
  echo "CATALINA_HOME  else:"$tomcatversion
fi }


 
dans cette version peut importe la version de TOMCAT c'est TOUJOURS le ELSE qui l'emporte
 
et dans celui ci c'est TOUJOURS le THEN  
 

Citation :

function TomcatCurrentToReal {
if [[ $tomcatversion=="*current*" ]] ;
 then
  echo $tomcatversion
  tomcatversion=`ssh tomcat@$clustername "ls -lrt /ccv/app/tomcat/" | grep current | cut -d">" -f2 | cut -d"/" -f1`
  echo "CATALINA_HOME then:" $tomcatversion
   
 else
  echo "CATALINA_HOME  else:"$tomcatversion
fi }


 
il n'y a que les espace avant et après le '==' qui ont été supprimés  
 
pourquoi ma condition ne fonctionne pas, j'ai aussi testé ça :
 

Citation :

function TomcatCurrentToReal {
if [ $tomcatversion = *current* ] ;
 then
  echo $tomcatversion
  tomcatversion=`ssh tomcat@$clustername "ls -lrt /ccv/app/tomcat/" | grep current | cut -d">" -f2 | cut -d"/" -f1`
  echo "CATALINA_HOME then:" $tomcatversion
   
 else
  echo "CATALINA_HOME  else:"$tomcatversion
fi }


 
et la encore c'est TOUJOURS le ELSE qui prime ...
 
help  [:athome]


Message édité par Sndk le 25-07-2013 à 11:05:57

---------------
Mon topic - Mon Feed-Back
mood
Publicité
Posté le 25-07-2013 à 11:04:42  profilanswer
 

n°1342085
Sndk
Hardcore Gamer
Posté le 25-07-2013 à 11:24:00  profilanswer
 

le soucis vient des * (wildcards) si je recherche la valeur exacte ALORS cela fonctionne
 
exemple : $tomcatversion=tomcat-7.0.30
 

Citation :

if [ $tomcatversion = tomcat-7.0.30 ] ;
then
      echo "ça fonctionne"


 

Citation :

if [ $tomcatversion = *tomcat* ] ;
then
       echo  
else
       echo "ça ne fonctionne pas !"


 
une idée ?


Message édité par Sndk le 25-07-2013 à 11:25:32

---------------
Mon topic - Mon Feed-Back
n°1342086
ccp6128
Syntax error
Posté le 25-07-2013 à 11:26:43  profilanswer
 

if [[ $tomcatversion = *"current"* ]]
 
Il faut utiliser les doubles brackets pour que bash interprète la partie droite de la comparaison comme étant un pattern. Les quotes sont optionnelles, mais je les mets quand même pour éviter que ta chaine de caractères contienne des caractères interprétés comme étant eux même des patterns.

n°1342089
Sndk
Hardcore Gamer
Posté le 25-07-2013 à 12:01:20  profilanswer
 

5h à me prendre la tête dessus et 3mn plus tard tu me donne la solution ... j'adore internet .. et je te remercie infiniment !!!!!!!!!
 
MER-CI :)


---------------
Mon topic - Mon Feed-Back

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Linux bash : pourquoi ma condition ne fonctionne pas

 

Sujets relatifs
probleme installation linux mint/UbuntuOS Linux pour "programmer"
Problème avec distrib linux (un peu toute en faite ^^)Instalation de linux pour de bon
linux ?install 2eme disque dur sur linux ?? merci
cron ne fonctionne pas!!comment installer linux sans dvd via l'iso ?? merci
comment installé plusieures linux ?? 
Plus de sujets relatifs à : Linux bash : pourquoi ma condition ne fonctionne pas


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR