本例主要使用二维循环输出字符串
#!/usr/bin/bash #生成三角形当前行字符 function createline() { Space=$(($2-$1)) Count=$(($1+$2-$3)) for ((j=1;j<=$(($Count + $Space));j++)) do if [ $j -gt $Space ];then echo -n "*" else echo -n " " fi done } #接收用户输入数据,并作合法性处理 while true do read -p "请输入三角形高度:" Num if [ -z $Num ];then echo "输入不能为空,请重新输入" else if [[ ! "$Num" =~ ^[0-9]+$ ]];then echo "您输入的不是数字,请重新输入" else break fi fi done #取得用户输入的数字开始循环输出每一行字符 s=$Num for ((i=1;i<=$Num;i++)) do createline $i $Num $s let s-- printf "\n" done