shell打印图案
打印如下图案
1
12
123
1234
12345
123456
1234567
12345678
123456789
12345678910
123456789
12345678
1234567
123456
12345
1234
123
12
1
#!/bin/bash
# 打印上半部分
for ((y=1;y<=10;y++))
dofor ((x=1;x<=$y;x++))do #取消换行,确保轴上数字落到同一行,如123echo -n $xdone
echo
done
# 打印下半部分
for y in {9..1}
dofor ((x=1;x<=$y;x++))doecho -n $xdone
echo
done
解析:
1
12
123
当y=1,x=1,即打印1
当y=2,x<=y=2,即打印12
当y=3,x<=y=3,即打印123
x轴负责打印数字,y轴负责换行
打印如下图案
121232123432123454321234565432123456765432123456787654321234567898765432123456789
109876543212345678910987654321234567898765432123456787654321234567654321234565432123454321234321232121
#!/bin/bash# 上半部分
for ((i=1; i<=10; i++))
do# 打印前导空格for ((j=10; j>i; j--))doecho -n " "done# 打印递减数字for ((k=i; k>=1; k--))doecho -n "$k"done# 打印递增数字(从2开始)for ((l=2; l<=i; l++))doecho -n "$l"doneecho "" # 换行
done# 下半部分
for ((i=9; i>=1; i--))
do# 打印前导空格for ((j=10; j>i; j--))doecho -n " "done# 打印递减数字for ((k=i; k>=1; k--))doecho -n "$k"done# 打印递增数字(从2开始)for ((l=2; l<=i; l++))doecho -n "$l"doneecho "" # 换行
done