Script shell

Fermé
arizonadream88 Messages postés 2 Date d'inscription dimanche 16 mars 2008 Statut Membre Dernière intervention 16 mars 2008 - 16 mars 2008 à 12:53
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 16 mars 2008 à 13:19
Bonjour,
J'ai un petit probleme depuis hier soir je me pren la tête sur un tp d'informatique sur le script shell.
Je dois réussir à faire un programme qui affichera un rectangle d'étoile en utillisant les boucles while et éventuellement une fonction.
Voilà ce que ca doit donner :
$etoile.sh 4 5
****
****
****
****
****

je me suis déja bien pris la tête je pense que ce qui s'approch le plus du programme final est quelque chose comme ça :
n=0
m=0
fonct()
{
while [ $n -lt $1 ]
do
n=$(($n + 1))
echo -n "*"
done
echo""
}
while [ $n -lt $2 ]
do
fonct $2
done

Mais ca ne fonctionne pas ....
merci d'avance
A voir également:

3 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
16 mars 2008 à 13:08
Salut,
lami20j@debian:~$ cat etoile.sh
#!/bin/bash

i=0
j=0
while [ $j -lt $2 ]
do
  while [ $i -lt $1 ]
    do
      echo -n "*"
      i=$((i+1))
    done
  i=0
  echo
  j=$((j+1))
done

lami20j@debian:~$ sh etoile.sh 4 5
****
****
****
****
****
0
arizonadream88 Messages postés 2 Date d'inscription dimanche 16 mars 2008 Statut Membre Dernière intervention 16 mars 2008
16 mars 2008 à 13:12
Merci bien je vais essayer de comprendre comment tu as fais maintenan :-)
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
16 mars 2008 à 13:19
Re,

pour comprendre l'exécution, tu peux mettre un sleep
#!/bin/bash

i=0
j=0
while [ $j -lt $2 ]
do
  while [ $i -lt $1 ]
    do
      echo -n "*"
      sleep 0.2
      i=$((i+1))
    done
  i=0
  echo
  j=$((j+1))
done
0