GNU/Linux >> Linux Esercitazione >  >> Linux

Shell Script per stampare la piramide di stelle

Nozioni di base

Quindi qui stamperemo la piramide di stelle in due parti come mostrato di seguito. Esamineremo il numero fornito dall'utente e stamperemo la prima metà delle stelle usando un ciclo for e l'altra metà usando un altro ciclo for. Gli spazi e i nuovi caratteri di riga vengono aggiunti in una sezione diversa.

Il copione

1. Modifica il file /tmp/star_pyramid.sh e aggiungi lo script seguente:

#!/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. Fornire autorizzazioni eseguibili sullo script.

# chmod +x /tmp/star_pyramid.sh

3. Durante l'esecuzione dello script fornire il numero di livelli desiderati nell'output. Ad esempio:

$ /tmp/star_pyramid.sh 10
          *
         ***
        *****
       *******
      *********
     ***********
    *************
   ***************
  *****************
 *******************

Un altro modo

Ecco un altro modo per stampare la piramide di stelle usando lo script della shell.

#!/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

Rendi eseguibile lo script ed eseguilo.

$ /tmp/star_pyramid.sh
Enter the level of pyramid: 10
          |
         *|*
        **|**
       ***|***
      ****|****
     *****|*****
    ******|******
   *******|*******
  ********|********
 *********|*********

Piramide dei numeri usando lo script della shell

Simile ai 2 esempi precedenti, puoi anche stampare una piramide di numeri usando lo script seguente.

#!/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

Rendi eseguibile lo script ed eseguilo.

$ /tmp/star_pyramid.sh
How many levels? : 5
1
22
333
4444
55555


Linux
  1. Determinare la shell nello script durante il runtime?

  2. Determinazione del percorso per lo script della shell di origine?

  3. Comportamento imprevisto di uno script di shell?

  4. Come creare un file temporaneo nello script della shell?

  5. Processi in una sessione in una shell interattiva vs in uno script?

Come utilizzare le variabili negli script della shell

Come creare script di shell

Stampa il tempo di esecuzione dello script della shell in Linux

Come eseguire un comando in uno script della shell?

determinare la shell nello script durante il runtime

Eseguire uno script di shell come utente diverso