Deux exercices de scripts shell à résoudre

Résolu
sadiqmrd -  
 Utilisateur anonyme -
Bonjour,

Exercice 1:
écrire un script shell qui prend en argument un nombre et renvoie son inverse sinon renvoie une erreur si le nombre d'arguments est différent de 1.

exemple : 123 ---> 321

voilà mon travail mais ça marche pas :

#!/bin/bash
a=0
b=0
if [ $# -ne 1]
then
echo "ereur"
else
until [ $a -eq 0 ]
do
a=$(($1/10))
b=$(($1%10))
echo -n "$b"
done
fi



Exercice 2:
écrire un script shell avec des boucles qui affiche :
1
22
333
4444
55555

ce que j'ai fait mais ça marche pas aussi :

#!/bin/bash
i=0
j=1
nbr=5
while [ $i -le $nbr ]
do
while [ $j -le $i ]
do
echo -n "$i"
j=$(($j+1))
done
i=$(($i+1))
echo -e "\n"
done


aidez-moi à les résoudre s'il vous plait , j'attends vos réponses , et merci d'avance
A voir également:

2 réponses

zipe31 Messages postés 38797 Statut Contributeur 6 433
 
Salut,

Le problème dans ces cas là c'est qu'on ne sait absolument pas les commandes que tu as déjà vues, celles que tu as droit d'employer ou pas ;-\

Pour le 1, une simple commande du bash fait ça normalement, mais je ne sais pas si tu as droit ou pas ;-\

Pour le 2, c'est juste une erreur dans la déclaration de ta variable "$j". Il faut la déclarer une fois que tu es rentré dans la 1ère boucle et non avant, sans quoi elle garde sa dernière valeur de comparaison et ne repart pas de "1" ;-\
De même la variable "$i" doit partir de "1" et non de "0" ;-)

#!/bin/bash
i=1
nbr=5
while [ $i -le $nbr ]
do
j=1
while [ $j -le $i ]
do
echo -n "$i"
j=$(($j+1))
done
i=$(($i+1))
echo
done 

1
sadiqmrd
 
merci pour le 2 ça marche :)

c'est pas grave, donnez-moi cette commande :D
1
Utilisateur anonyme
 
salut,

rev n'est pas une commande interne du Bourne Again SHell.
0