Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 08/11/2009, à 15:17

pmdzlineur

conditions multiples if en bash

Je suis assez nul en bash, mais je dois faire un petit executable pour compiler plusieurs programmes d'une même suite.
Quoique je fasse je ne m'en sort pas.
La commande

 if [$i = "parametrages"]  ||  [$i = "recettedialog"]  ||  [$i = "depensedialog"]  ||  [$i = "immobilisations"] ; then

ne colle pas.
Le code complet

#!/bin/bash

if [ $1 == ]; then
  LISTE="parametrages recettedialog depensedialog immobilisations comptatriee recettestriees depensestriees etatdesdus grand_livre setup"
  else
  LISTE=$1
fi

for i in $LISTE
  do
    if [$i = "parametrages"]  ||  [$i = "recettedialog"]  ||  [$i = "depensedialog"]  ||  [$i = "immobilisations"] ; then
      cd comptabilite_interfaces_src/$i
      qmake-qt4 -nocache src.pro
      make
      make clean
      cd ..
      echo "==========compilation $i OK ======================================"
    elif [$i = "setup"]; then
      cd setup
      qmake-qt4 -nocache src.pro
      make
      make clean
      cd ..
      echo "==========compilation $i OK ======================================"
    else 
      cd recettestriees/$i
      qmake-qt4 -nocache src.pro
      make
      make clean
      cd ..
      echo "==========compilation $i OK ======================================"
    fi
   done

echo "==============fin de la compilation les binaires sont dans /bin================"

exit

Pourriez vous me sortir de là svp ?
Merci


je ne suis pas informaticien, juste utilisateur un peu averti ;-)
http://www.freemedforms.com/fr/start
http://code.google.com/p/rapidcomptamed/
médecin volant, mais pas en même temps ;-)

Hors ligne

#2 Le 08/11/2009, à 15:42

pmdzlineur

Re : conditions multiples if en bash

Ah j'ai enfin trouvé, c'est nul le bash mad
Il fallait mettre des espaces après [
Bon j'ai corrigé d'autres petits trucs ;-)

#!/bin/bash

if [ $1 == ]; then
  LISTE="parametrages recettedialog depensedialog immobilisations comptatriee recettestriees depensestriees etatdesdus grand_livre setup"
  else
  LISTE=$1
fi

for i in $LISTE
  do
    if [ $i = 'parametrages' ]  ||  [ $i = 'recettedialog' ]  ||  [ $i = 'depensedialog' ]  ||  [ $i = 'immobilisations' ] ; then
      cd comptabilite_interfaces_src/$i
      qmake-qt4 -nocache src.pro
      make
      make clean
      cd ../..
      echo "==========compilation $i OK ======================================"
    elif [ $i = 'setup' ]; then
      cd setup
      qmake-qt4 -nocache src.pro
      make
      make clean
      cd ..
      echo "==========compilation $i OK ======================================"
    else 
      cd recettestriees/$i
      qmake-qt4 -nocache src.pro
      make
      make clean
      cd ../..
      echo "==========compilation $i OK ======================================"
    fi
   done

echo "==============fin de la compilation les binaires sont dans /bin================"

exit

J'préfère perl pour l'administration ...

Dernière modification par pmdzlineur (Le 08/11/2009, à 15:42)


je ne suis pas informaticien, juste utilisateur un peu averti ;-)
http://www.freemedforms.com/fr/start
http://code.google.com/p/rapidcomptamed/
médecin volant, mais pas en même temps ;-)

Hors ligne

#3 Le 08/11/2009, à 16:21

HymnToLife

Re : conditions multiples if en bash

pmdzlineur a écrit :

Ah j'ai enfin trouvé, c'est nul le bash mad
Il fallait mettre des espaces après [

[ est une commande comme une autre, donc bien entendu qu'il faut mettre une espace avant les arguments. Tu n'écris pas "makeclean", que je sache. wink

C'est nul Perl. yikes


- Rodrigue, as-tu du cœur ?
- Non, mais j'ai du pique !

Hors ligne

#4 Le 08/11/2009, à 16:40

pmdzlineur

Re : conditions multiples if en bash

C++ c'est le top wink

Bon ok bash est presque pas complètement nul, ça va permettre à l'utilisateur de compiler facilement sous linux.


je ne suis pas informaticien, juste utilisateur un peu averti ;-)
http://www.freemedforms.com/fr/start
http://code.google.com/p/rapidcomptamed/
médecin volant, mais pas en même temps ;-)

Hors ligne