Ich habe es als kleine Geschichte der Bash-Programmierung erstellt. Lassen Sie uns die Pyramide mit "*" anzeigen.
#!/bin/bash
echo "*"
echo "**"
echo "***"
echo "****"
echo "*****"
$ ./pyramid.sh
*
**
***
****
*****
Das vorherige Programm ist gut. Da es jedoch unflexibel ist, werden wir es so ändern, dass der Benutzer die Anzahl der Schritte angeben kann.
#!/bin/bash
ast='*'
echo -n "Input number => "
read num
for i in $(seq 1 $num)
do
echo "$ast"
ast='*'${ast}
done
Sie können den Zähler mit while anstelle von for verwenden. Ich habe mich für entschieden, weil es besser lesbar ist als währenddessen.
$ ./pyramid.sh
Input number => 6
*
**
***
****
*****
******
Es war ziemlich schwierig. Links neben dem "*" befindet sich ein Leerzeichen. Wie soll man damit umgehen? Außerdem müssen die Leerzeichen nacheinander reduziert werden.
$ 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
Ich habe die Zeichenfolgenersetzung für Variablen verwendet, um Leerzeichen zu entfernen.
$ ./center_pyramid.sh
Input number => 6
*
***
*****
*******
*********
***********
Durch das Erstellen dieses Programms
Ich habe verstanden.
Recommended Posts