1.打印 ***** ;
line="";ch="\x2a" # "\x2a"表示星号* for((i=0;i<5;i++));do line=$line$ch done echo -e $line2.打印 5*5矩形
for((j=0;j<5;j++));do line="";ch="\x2a" for((i=0;i<5;i++));do line=$line$ch done echo -e $line done3.四种等腰直角三角形
直角在左下
for((y=0;y<5;y++));do line="";ch="\x2a" for((x=0;x<=y;x++));do # 看斜线的坐标 line=$line$ch done echo -e $line done直角在左上
for((y=0;y<5;y++));do line="";ch="\x2a" for((x=0;x+y<5;x++));do # 看斜线的坐标 line=$line$ch done echo -e $line done直角在右上
for((y=0;y<5;y++));do line="";ch="\x20" # \x20是空格符 for((x=0;x<5;x++));do if((x==y));then # 当x=y后,空格由星号替代 ch="\x2a" fi line=$line$ch done echo -e $line done直角在右下
for((y=0;y<5;y++));do line="";ch="\x20" for((x=0;x<5;x++));do if((x+y==4));then #过斜线以后 空格由星号替代 ch="\x2a" fi line=$line$ch done echo -e $line done4.等腰三角形
for((y=0;y<5;y++));do line="";ch="\x20" for((x=0;x-y<5;x++));do # 控制右边界 if((x+y==4));then # 控制左边界 ch="\x2a" fi line=$line$ch done echo -e $line done5.等腰三角形(距左一定距离)
left=40;right=40 #左边界顶点位置与右边界顶点位置 for((y=0;y<5;y++));do line="";ch="\x20" for((x=0;x<=right;x++));do if((x==left));then ch="\x2a" fi line=$line$ch done echo -e $line ((left--));((right++)) #控制幅度 也可以写成left-=n; done6.等腰梯形
left=35;right=45 #等腰三角形左右边界顶点位置不同则变成了等腰梯形 for((y=0;y<5;y++));do line="";ch="\x20" for((x=0;x<=right;x++));do if((x==left));then ch="\x2a" fi line=$line$ch done echo -e $line ((left--));((right++)) done7.普通三角形(或普通梯形,只需修改left与right不等)
left=40;right=40;ldlt=-2;rdlt=4 #ldlt rdlt 可以理解成左右边界的斜率 for((y=0;y<5;y++));do line="";ch="\x20" for((x=0;x<=right;x++));do if((x==left));then ch="\x2a" fi line=$line$ch done echo -e $line ((left+=ldlt));((right+=rdlt)) done8.平行四边形
left=40;right=50;ldlt=-4;rdlt=-4 for((y=0;y<5;y++));do line="";ch="\x20" for((x=0;x<=right;x++));do if((x==left));then ch="\x2a" fi line=$line$ch done echo -e $line ((left+=ldlt));((right+=rdlt)) done9.菱形
left=40;right=40;ldlt=-3;rdlt=3;maxy=9 for((y=0;y<maxy;y++));do line="";ch="\x20" for((x=0;x<=right;x++));do if((x==left));then ch="\x2a" fi line=$line$ch done echo -e $line if((y==maxy/2));then ((ldlt*=-1));((rdlt*=-1)) fi ((left+=ldlt));((right+=rdlt)) done10.空心菱形
left=40;right=40;ldlt=-3;rdlt=3;maxy=9 for((y=0;y<maxy;y++));do line="";ch="\x20" for((x=0;x<=right;x++));do if((x==left||x==right));then ch="\x2a" else ch="\x20" fi line=$line$ch done echo -e $line if((y==maxy/2));then ((ldlt*=-1));((rdlt*=-1)) fi ((left+=ldlt));((right+=rdlt)) done