Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".

#1 Le 04/11/2009, à 19:04

foxtrom

variable bash..

Bonjour à tous,

Je viens vers vous parce que ce forum à resolu jusqu'à présent tous mes problémes.. ^^ mais aujourd'hui je suis heurté à une éxecution d'une variable...

Ce que j'aimerais faire : saisir une premiere fois la valeur d'une variable dans ma console par exemple export toto=0 , et l'utiliser  dans un script...

Le but étant de verifier la valeur d'une variable avant d'executer le script, et n executer le script que si la Variable toto = 0.

Une fois le script executé, il doit remettre la variable a 0.

Si j'ai bien compris il faut exporter la variable ?
je définis : export toto = 0

et voici mon script :

#!/bin/sh
echo $toto
if [ "$toto" -eq 0 ]; then
export toto=1
echo $toto
echo "j'execute mes lignes de commandes"
export toto=0
echo $toto
fi


Le test IF est correct, mais la valeur de ma variable toto ne change jamais..

si à la fin de mon script je met :

export toto=1

et que je relance mon script dessuite... il passe dans la boucle directement.. comme si toto était égal à 0...

mais si je lance la commande export toto = 0 dans ma console, la par contre la boucle if marche correctement...

j'espere avoir était clair...

Merci d'avance

Hors ligne

#2 Le 04/11/2009, à 21:44

FRUiT

Re : variable bash..

Plutôt que stocker dans une variable ton 0 ou 1, pourquoi ne pas plutot le stocker dans un fichier ?

echo 0 > ~/.configfile

Après ton script n'a plus qu'à lire ce fichier et stocker le nombre dans une variable pour la vérification du if

VARTEST=$(cat ~/.configfile)

L'avantage est que le paramètre se conserve même ordi éteint.


Neon Suite by FRUiT (kde4.6) http://tinyurl.com/yzm7cee
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean

Hors ligne

#3 Le 04/11/2009, à 22:22

FRUiT

Re : variable bash..

Il faut que ton 'toto=0' en fin de script soit en dehors de la condition if. Et il faut aussi prévoir de finir le programme depuis l'intérieur du if le cas échéant, sinon le reste en dessous s'exécute également.

 
 
#!/bin/sh
echo $toto
if [ "$toto" -eq 0 ]; then
  export toto=1
  echo $toto
  echo "j'execute mes lignes de commandes"
  exit
fi
export toto=0
echo $toto

Dernière modification par FRUiT (Le 04/11/2009, à 22:34)


Neon Suite by FRUiT (kde4.6) http://tinyurl.com/yzm7cee
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean

Hors ligne

#4 Le 06/11/2009, à 11:57

foxtrom

Re : variable bash..

Merci pour votre aide smile

voila mon nouveau script, j'attends votre retour tongue

#!/bin/sh
vartest=$(cat /home/nagios/used.txt)
cat /home/nagios/used.txt
if [ "$vartest" -eq "0" ]; then
echo 1 > /home/nagios/used.txt
cat /home/nagios/used.txt
sleep 10
echo "j'execute mes lignes de commandes"
echo 0 > /home/nagios/used.txt
cat /home/nagios/used.txt
fi


Merciiiiiii

Hors ligne