πŸ“œ Shell скрипт для Π²Ρ‹Π²ΠΎΠ΄Π° ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρ‹ Π·Π²Π΅Π·Π΄

by itisgood

ΠžΡΠ½ΠΎΠ²Ρ‹

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρƒ Π·Π²Π΅Π·Π΄ ΠΈΠ· Π΄Π²ΡƒΡ… частСй, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€Π°, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ Π·Π²Π΅Π·Π΄ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΠΊΠ»Π° for, Π° Π²Ρ‚ΠΎΡ€ΡƒΡŽ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ – с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° for.

ΠŸΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΈ символы Π½ΠΎΠ²ΠΎΠΉ строки Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ сСкции.

Π‘ΠΊΡ€ΠΈΠΏΡ‚

1. ΠžΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» /tmp/star_pyramid.sh ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² Π½Π΅Π³ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π½ΠΈΠΆΠ΅ скрипт:

#!/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. Π”Π°ΠΉΡ‚Π΅ ΠΏΡ€Π°Π²Π°

# chmod +x /tmp/star_pyramid.sh

3. Π’ΠΎ врСмя выполнСния скрипта ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ количСство ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π² Π²Ρ‹Π²ΠΎΠ΄Π΅. НапримСр:

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

Π”Ρ€ΡƒΠ³ΠΎΠΉ способ

Π’ΠΎΡ‚ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ способ вывСсти ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρƒ Π·Π²Π΅Π·Π΄ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ 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

Π‘Π΄Π΅Π»Π°ΠΉΡ‚Π΅ скрипт исполняСмым ΠΈ запуститС Π΅Π³ΠΎ.

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

ΠŸΠΈΡ€Π°ΠΌΠΈΠ΄Π° чисСл с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ скрипта

Аналогично Π΄Π²ΡƒΠΌ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌ, Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ вывСсти ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρƒ чисСл с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π½ΠΈΠΆΠ΅ скрипта.

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

Π‘Π΄Π΅Π»Π°ΠΉΡ‚Π΅ скрипт исполняСмым ΠΈ запуститС Π΅Π³ΠΎ.

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

см. Ρ‚Π°ΠΊΠΆΠ΅:

 

You may also like

Leave a Comment