Deux exercices de scripts shell à résoudre

Résolu/Fermé
sadiqmrd - 4 juin 2011 à 18:29
 Utilisateur anonyme - 4 juin 2011 à 20:30
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 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
4 juin 2011 à 19:28
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
merci pour le 2 ça marche :)

c'est pas grave, donnez-moi cette commande :D
1
Utilisateur anonyme
4 juin 2011 à 20:30
salut,

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