shell 根据输入打印金字塔

根据用户输入,打印大小相对应的金字塔

#!/bin/bash
pyramid()
{
    declare -i colNumber=$1//用户输入的行数
    declare -i colNow=1//当前行数
    declare -i countNow=1//计数作用
    declare -i tmp//临时变量
    while [ $colNow -le $colNumber ]
    do
        tmp=$colNumber-$colNow
        while [ $countNow -le $tmp ]//打印第一部分
        do
            echo -e " \c"
            countNow=$countNow+1
        done
        countNow=1
        while [ $countNow -le $colNow ]//第二部分
        do
            echo -e "*\c"
            countNow=$countNow+1
        done
        countNow=1
        tmp=$colNow-1
        while [ $countNow -le $tmp ]//第三部分
        do
            echo -e "*\c"
            countNow=$countNow+1
        done
        echo " "//换行
        countNow=1//部分数据重置
        colNow=$colNow+1
    done
}
declare -i col
col=$1
echo " I will finish a $col cols ' pyramid"//提醒用户将要打印多少行金字塔
pyramid $col//调用函数




这里有shell中的函数的知识,大家可以去我的其他博文中看一下,会有具体介绍的
金字塔麻烦。麻烦在哪里呢?就是某一行你不知道怎么打印心,space,对吧,
我将一行的打印分成四个部分,
第一部分,打印 一定数量的space,多少?,总行数-当前行数,
第一行打印第二部分紧接其后,打印*,多少心,有几行就打印多少心,
然后第三部分,打印总行数-当前行数-1个心,对,没错,前面心数-1,
第四部分,不用打印,换行
总共打印多少行,就需要循环多少次,这就是整个打印函数的思路
shell中如何打印不换行呢?echo -e " \c",其他的,看代码喽

发布了23 篇原创文章 · 获赞 16 · 访问量 2945

猜你喜欢

转载自blog.csdn.net/qq_41861442/article/details/97836265
今日推荐