Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env bash
- [ -z "$*" -o "$*" = "help" ] && echo triforce.sh [layer] [height]
- [ "$1" -eq "$1" ] 2>/dev/null && l=$1 || l=2 # layers to generate
- [ "$2" -eq "$2" ] 2>/dev/null && h=$2 || h=5 # height of individual triangle
- rptchar() {
- local iter char
- char=$1 # must be single char
- iter=$2 # must be integer
- if [ $iter -le 0 ]; then
- return 0
- elif [ $iter -le 4500 ]; then
- eval printf "%.s$char" {1..$iter} # uses eval
- else
- printf '%*s' $iter | tr ' ' "$char"
- fi
- }
- for ((k=1;k<=$l;k++)); do
- # generate triangles for a single layer
- for ((i=1;i<=$h;i++)); do
- # generate initial padding for triangles
- # comment out for the true triforce effect
- rptchar '\ ' $((h * (l - k)))
- # generate the initial triangle
- rptchar '\ ' $((h - i))
- rptchar '*' $((2 * i - 1))
- # generate the other triangles
- for ((j=2;j<=$k;j++)); do # does not execute when k=1
- rptchar '\ ' $((2 * (h - i + 1) - 1))
- rptchar '*' $((2 * i - 1))
- done
- printf "\n"
- done
- done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement