Script shell

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
Configuration: Linux
Firefox 2.0.0.11

3 réponses

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    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
    ****
    ****
    ****
    ****
    ****
    
    1. Merci bien je vais essayer de comprendre comment tu as fais maintenan :-)
      1. Modérateur
        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