根据用户输入,打印大小相对应的金字塔
#!/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",其他的,看代码喽