Deux exercices de scripts shell à résoudre [Résolu/Fermé]

Signaler
-
 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

Messages postés
36299
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 149
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

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

merci pour le 2 ça marche :)

c'est pas grave, donnez-moi cette commande :D
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Utilisateur anonyme
salut,

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