Je l'ai créé comme une petite histoire de programmation Bash. Montrons la pyramide en utilisant "*".
#!/bin/bash
echo "*"
echo "**"
echo "***"
echo "****"
echo "*****"
$ ./pyramid.sh
*
**
***
****
*****
Le programme précédent est un bon programme. Cependant, comme il est inflexible, nous le modifierons afin que l'utilisateur puisse spécifier le nombre d'étapes.
#!/bin/bash
ast='*'
echo -n "Input number => "
read num
for i in $(seq 1 $num)
do
echo "$ast"
ast='*'${ast}
done
Vous pouvez utiliser le compteur avec while au lieu de for. J'ai choisi car il est plus lisible que while.
$ ./pyramid.sh
Input number => 6
*
**
***
****
*****
******
C'était assez difficile. Il y a un espace à gauche du "*", alors comment le gérer? De plus, il est nécessaire de réduire les flans un par un.
$ cat center_pyramid.sh
#!/bin/bash
ast='*'
spc=' '
echo -n "Input number => "
read num
(( spc_cnt = $num - 2 ))
for i in $(seq 1 $spc_cnt)
do
spc=' '${spc}
done
for j in $(seq 1 $num)
do
echo "$spc""$ast"
ast='**'${ast}
spc=${spc#' '}
done
J'ai utilisé le remplacement de chaîne pour les variables comme moyen de supprimer les espaces.
$ ./center_pyramid.sh
Input number => 6
*
***
*****
*******
*********
***********
En créant ce programme
J'ai compris.
Recommended Posts