Précédent   Forum des professionnels en informatique > Systèmes > Linux
Linux Forum d'entraide sur le système Linux. Avant de poster -> Tutoriels Linux, F.A.Q Linux
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/02/2011, 10h01   #1
Membre à l'essai
 
Inscription : décembre 2009
Messages : 128
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 128
Points : 20
Points : 20
Par défaut Arrêter un script suivant une condition

Bonjour
Pour arrêter un script peux_je uiliser l'appel système exit ?
Bon, voilà un exercice qui demande l'arrêt du script si l'utilisateur tape point.
énoncé:
Ecrire un srcpit Calcul qui boucle ne demandant à l'utilisateur de saisir deux variables, affiche leur somme, leur différence, leur produit et leur quotient.
le programme s'arrête lorsque l'utilisateur saisit un point.

Pour résoudre cet exercice, je teste tout d'abord les variables x et y si une de ces variables est égale ) '.' j'arrête le programme => exit, sinon on calcul les valeurs demandées, et bien sûr tout ça dans une boucle.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
while [1 -eq 1 ] #boucle infinie
do
echo taper x
read x
echo taper y
read y
if [ "x" = "." -o "y"="." ]
then 
       exit
else
        echo $(expr $x "+" $y) $(expr $x "-" $y)  $(expr $x "*" $y)  $(expr $x "/" $y)
fi 
done

lorsque j’exécute se script :
il me demande x et y et puis il sort !!

mais je pense que l'idéal c'est de mettre la condition d'arrêt dans la boucle, mais le problème c'est que à ce moment là l'utilisateur n'a pas encore entré x et y.

Pouvez vous svp m'aider ?

amicalement
hindou90 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2011, 10h14   #2
Membre habitué
 
Développeur informatique
Inscription : juillet 2002
Messages : 96
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juillet 2002
Messages : 96
Points : 120
Points : 120
bonjour,

Essais avec ca

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
while [ 1 -eq 1 ] #boucle infinie
do
echo taper x
read x
echo taper y
read y
if [ $x = "." -o $y = "." ]
then
       exit
else
        echo $(expr $x "+" $y) $(expr $x "-" $y)  $(expr $x "*" $y)  $(expr $x "/" $y)
fi
done


Code :
1
2
3
4
5
6
7
 
 
while [ 1 -eq 1 ] # Attention aux espaces entre les [ ] et les opérateurs qui sont obligatoires!!
#Au lieu de 
while [1 -eq 1 ] 
 
if [ "x" = "." -o "y"="." ]// Pas bien tu compares la chaine "x" et "." idem pour y, et attention aux espaces.
Cordialement
__________________
Je connais des gens qui ne sont pas aware, il ne sont pas qu courant. il ne sont pas a l'attention de savoir qu'ils existent.
"J-C Van dam"
Lharuun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2011, 11h13   #3
Membre à l'essai
 
Inscription : décembre 2009
Messages : 128
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 128
Points : 20
Points : 20
merci pour votre réponse ça donne:
Trop d'argument au niveau du ligne 7 !
mais malgré ça il s'exucute sauf que la boucle ne s'arrête jamais même si je tape "."
hindou90 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2011, 11h27   #4
Membre habitué
 
Développeur informatique
Inscription : juillet 2002
Messages : 96
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juillet 2002
Messages : 96
Points : 120
Points : 120
tu as recopié celui ci ? par ce qu'il fonctionne nickel chez moi

tu utilise quel shell ?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
while [ 1 -eq 1 ] #boucle infinie
do
echo taper x
read x
echo taper y
read y
if [ $x = "." -o $y = "." ]
then
       exit
else
        echo $(expr $x "+" $y) $(expr $x "-" $y)  $(expr $x "*" $y)  $(expr $x "/" $y)
fi
done
__________________
Je connais des gens qui ne sont pas aware, il ne sont pas qu courant. il ne sont pas a l'attention de savoir qu'ils existent.
"J-C Van dam"
Lharuun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2011, 20h29   #5
Membre à l'essai
 
Inscription : décembre 2009
Messages : 128
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 128
Points : 20
Points : 20
bonsoir
J'ai oublié d'ajouter $x et $y dans if ce qui a crée l'erreur.
Ok ça marche

Merci beaucoup pour vous
hindou90 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h52.


 
 
 
 
Partenaires

Hébergement Web