Je veux imprimer les nombres dans le modèle suivant en utilisant la boucle WHILE.
0 01 012 0123 ..... ...... 0123456789
#!/bin/sh a=0 b=0 while [ $a -le 10 ] do while [ $b -le $a ] do echo -n "$b" b=`expr $b + 1` done echo a=`expr $a + 1` done
Obtenir des résultats:
0 1 2 3 4 5 6 7 8 9 10
Comme vous ajoutez simplement le dernier compte à la sortie de la ligne, faites-le simplement en tant que texte.
#!/bin/bash a=0 out='' while [ $a -lt 10 ] do out=$out$a echo $out a=`expr $a + 1` done
En outre, le
est inférieur ou égal, donc vous vous retrouvez avec 10. Utilisez lt 10
ou le 9
.
Si vous utilisez le shell bash
, vous pouvez tirer parti des expressions de séquence de la forme {x..y}
et utiliser le paramètre spécial $_
qui se développe généralement jusqu’au dernier argument de la commande précédente.
#/bin/bash i= for i in {0..9} do echo "$_$i" done
a=0 b=1 while [ $a -lt 10 ] do a=0 while [ $a -lt $b ] do echo -n $aa=`expr $a + 1 ` done echo b=`expr $b + 1` done