Dasar-dasar
Jadi disini kita akan mencetak piramida bintang dalam dua bagian seperti gambar dibawah ini. Kami akan mengulang melalui nomor yang disediakan oleh pengguna dan mencetak paruh pertama bintang menggunakan loop for dan separuh lainnya menggunakan loop for lainnya. Spasi dan karakter baris baru ditambahkan di bagian yang berbeda.
Skrip
1. Edit file /tmp/star_pyramid.sh dan tambahkan skrip di bawah ini ke dalamnya:
#!/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. Berikan izin yang dapat dieksekusi pada skrip.
# chmod +x /tmp/star_pyramid.sh
3. Saat menjalankan skrip, berikan jumlah level yang Anda inginkan di output. Misalnya:
$ /tmp/star_pyramid.sh 10 * *** ***** ******* ********* *********** ************* *************** ***************** *******************
Cara lain
Berikut adalah cara lain untuk mencetak piramida bintang menggunakan skrip 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
Jadikan skrip dapat dieksekusi dan jalankan.
$ /tmp/star_pyramid.sh Enter the level of pyramid: 10 | *|* **|** ***|*** ****|**** *****|***** ******|****** *******|******* ********|******** *********|*********
Piramida Angka menggunakan skrip shell
Mirip dengan 2 contoh di atas, Anda juga dapat mencetak piramida angka menggunakan skrip di bawah ini.
#!/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
Jadikan skrip dapat dieksekusi dan jalankan.
$ /tmp/star_pyramid.sh How many levels? : 5 1 22 333 4444 55555