shell脚本画简单图形,逻辑超简单

废话不多少,直接上图

如图,若我们需要划一个菱形考虑一下内容

1.画多大,这个取决我们自己,可以定义一个变量,这里我们定义为$R

2.因为shell中,画图是从上向下划的,故划图时,y坐标我把它指向下了,这样我们画出来的图和shell打印出来的图就一致了

3.划什么图可以先在纸上画出来,计算出其各个点的坐标,两点一线算出函数关系,这些函数关系就是我们shell判断画图的条件

4.shell画图逻辑:y=1时,x++循环到两倍的半径即可(上图的半径为2r),过程中由函数来判断是画*还是画空格

                y++循环到2倍的半径      每一个y值,x都循环一遍。

思路想好后,直接上代码

read -p "请输入菱形边长:" R
for ((y=0; y<=$R*2; y++ ))
do
        for ((x=0; x<=$R*2; x++))
        do
        if ((y>=R-x && y<=R+x && y<=R*3-x && y>=x-R ))
#       if ((y==R-x || y==R+x || y==R*3-x || y==x-R ))      #空心菱形
        then
        echo -n "*"
        else
        echo -n " "
        fi
        done
echo " "
done

这个脚本就比较灵活,若想画其它的图形,只需要更改一下判断函数即可

注意,此代码请不要直接复制,可能是网页的问题,直接复制过去在脚本执行时会报语法错误。正常的可以执行的代码复制到网页上后,在从网页复制到shell中,就会报语法错误

猜你喜欢

转载自blog.csdn.net/weixin_41648905/article/details/108304882