Comment programmer un message d'erreur

Fermé
ayoub1bdb Messages postés 1 Date d'inscription lundi 4 novembre 2013 Statut Membre Dernière intervention 19 mai 2014 - 19 mai 2014 à 11:20
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 19 mai 2014 à 14:29
Bonjour,

je suis débutant en programmation shell et j'ai essayer de programme ce exo mais à l'etape du message d'erreur je ss bloque.
Écrire un script qui donne les valeurs de Y=10X+3X² pour de valeurs allant de x à
x' avec un incrément de z. Les valeurs x, x' et z seront passé en paramètres sur la
ligne de commande.

solution:
--------------
#!/bin/sh
if [ $# -eq 3 ]
then
x=$1
xp=$2
z=$3
inc=$1

while [ $inc -le $xp ]
do
let b2=3*inc*inc
let resultat=10*inc+b2
echo "10X+3X² avec X=$inc donne $resultat"
let inc=inc+z
done
else
echo "Syntaxe : $0 [x] [x'] [pas]"
fi

----------------------
la question et comment je peux faire le reste de cette exo. comme ci dessous :

L'affichage du résultat sera comme suit :
Les paramètres X, X' et Z seront passés sur la ligne de commande à condition que
X doit être inférieur à X'.
Si l'utilisateur n'a pas passé les paramètres sur le terminal ou s'il tape le paramètre
X > X', le terminal va afficher comme message d'erreur comme :

Erreur de syntaxe, vous devez entrer X, X' et Z (X doit être inférieur à X').
A voir également:

1 réponse

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 417
19 mai 2014 à 11:27
Salut,

De la même façon que tu as fait
if [ $# -eq 3 ]; then ...
, tu fais un test sur tes paramètres.

man bash (Évaluation arithmétique)
1
Utilisateur anonyme
19 mai 2014 à 14:21
salut,

sans oublier que les messages d'erreurs doivent être envoyés sur la sortie d'erreur:
=>
echo "erreur" >&2
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 417
19 mai 2014 à 14:29
Aie aussi,

Déjà s'il l'envoie sur la sortie standard, il aura fait un grand pas ;-)
0