Основы
Здесь мы будем выводить пирамиду звезд из двух частей, как показано ниже.
Мы будем перебирать номера, указанные пользователем, и печатать первую половину звезд с помощью цикла 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
см. также:
- 🐧 Как распарсить логи истории apt
- 🌐 Shell/Bash скрипт для поиска простых чисел на Linux
- 🐍 Как поменять местами две переменные в Python?
- 📜 Shell скрипты – удаление двойных кавычек (“”) из строки
- 📜 Как использовать операторы Break и Continue в скриптах bash
- ☸️ Как показать все образа в кластере Kubernetes ?
![]()
