Die Grundlagen
Hier drucken wir also die Sternenpyramide in zwei Teilen, wie unten gezeigt. Wir durchlaufen die vom Benutzer angegebene Nummer und drucken die erste Hälfte der Sterne mit einer for-Schleife und die andere Hälfte mit einer anderen for-Schleife. Die Leerzeichen und Zeilenumbruchzeichen werden in einem anderen Abschnitt hinzugefügt.
Das Drehbuch
1. Bearbeiten Sie die Datei /tmp/star_pyramid.sh und fügen Sie das folgende Skript hinzu:
#!/bin/bash makePyramid() { # Here $1 is the parameter you passed with the function i,e 5 n=$1; # outer loop is for printing number of rows in the pyramid for((i=1;i<=n;i++)) do # This loop print spaces required for((k=i;k<=n;k++)) do echo -ne " "; done # This loop print part 1 of the the pyramid for((j=1;j<=i;j++)) do echo -ne "*"; done # This loop print part 2 of the pryamid. for((z=1;z<i;z++)) do echo -ne "*"; done # This echo is used for printing a new line echo; done } # calling function # Pass the number of levels you need in the parameter while running the script. makePyramid $1
2. Geben Sie Ausführungsberechtigungen für das Skript an.
# chmod +x /tmp/star_pyramid.sh
3. Geben Sie während der Ausführung des Skripts die Anzahl der Ebenen an, die Sie in der Ausgabe haben möchten. Zum Beispiel:
$ /tmp/star_pyramid.sh 10 * *** ***** ******* ********* *********** ************* *************** ***************** *******************
Ein anderer Weg
Hier ist eine weitere Möglichkeit, die Sternenpyramide mit Shell-Skript zu drucken.
#!/bin/bash clear echo -n "Enter the level of pyramid: "; read n star='' space='' for ((i=0; i<n; i++ )) do space="$space " done echo "$space|" for (( i=1; i<n; i++ )) do star="$star*" space="${space%?}" echo "$space$star|$star"; done
Machen Sie das Skript ausführbar und führen Sie es aus.
$ /tmp/star_pyramid.sh Enter the level of pyramid: 10 | *|* **|** ***|*** ****|**** *****|***** ******|****** *******|******* ********|******** *********|*********
Zahlenpyramide mit Shell-Skript
Ähnlich wie in den beiden obigen Beispielen können Sie mit dem folgenden Skript auch eine Zahlenpyramide drucken.
#!/bin/bash read -p "How many levels? : " n for((i = 0; i < n; i++)) do k=0 while((k < $((i+1)))) do echo -e "$((i+1))\c" k=$((k+1)) done echo " " done
Machen Sie das Skript ausführbar und führen Sie es aus.
$ /tmp/star_pyramid.sh How many levels? : 5 1 22 333 4444 55555