GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Shell-Skript zum Drucken der Sternenpyramide

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


Linux
  1. Shell im Script zur Laufzeit ermitteln?

  2. Bestimmen des Pfads zum bezogenen Shell-Skript?

  3. Wie behandelt man Schalter in einem Shell-Skript?

  4. Transliterationsskript für die Linux-Shell

  5. Ist Shell-Skript eine Programmiersprache?

So verwenden Sie Variablen in Shell-Skripten

So erstellen Sie Shell-Skripte

Ausführungszeit des Shell-Skripts in Linux drucken

Wie führe ich einen Befehl in einem Shell-Skript aus?

Kann eine .sh-Datei Malware sein?

Führen Sie ein Shell-Skript als ein anderer Benutzer aus