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 04/11/2009, à 18: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, à 20: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) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean

Hors ligne

#3 Le 04/11/2009, à 21: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, à 21:34)


Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean

Hors ligne

#4 Le 06/11/2009, à 10: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