*
***
*****
*******
预览图形 发现图形由三个变量组成 行数n 每行的空格数a 和每行的符号数b
关系是 a=n-当前行数 b=2xn-1 并且空格都在符号前
根据关系编写脚本
#!/bin/bash
read -p "input the line numb:" numb
for n in `seq $numb` ;do
for a in `seq $[$numb-$n]` ;do
echo -n ' '
done
for b in `seq $[${n}*2-1]` ;do
echo -n '*'
done
echo
done
脚本一共涉及了4个变量 3个循环 变量numb为总行数 用变量numb定义n n为循环的次数即打印出的行数 变量a为每行空格的数量用numb-n定义 变量b为每行符号数用nx2-1定义
脚本运行过程是打印第一行时 先打印空格再打印符号 再执行第二行 打印空格符号…..
echo -n 为打印不换行 最后一个echo 作用为换行
也可用其他循环表示
#!/bin/bash
read -p "input the line numb:" numb
n=1
while [ $n -le $numb ] ;do
a=1
while [[ $a -le $[$numb-$n] ]] ;do
echo -n ' '
let a++
done
b=1
while [[ $b -le $[${n}*2-1] ]] ;do
echo -n '*'
let b++
done
let n++
echo
done
while循环注意定义开始循环和结束条件 until与while相比 就是while改成until 循环条件取反即可
#!/bin/bash
read -p "input the line numb:" numb
n=1
until [ ! $n -le $numb ] ;do
a=1
until [ ! $a -le $[$numb-$n] ] ;do
echo -n ' '
let a++
done
b=1
until [ ! $b -le $[${n}*2-1] ] ;do
echo -n '*'
let b++
done
let n++
echo
done
for的另外一种格式
#!/bin/bash
read -p "input the line numb:" numb
for((n=1 ;n <= $numb;n++));do
for((a=1;a <= $[$numb-$n];a++));do
echo -n '#'
done
for((b=1;b <= $[${n}*2-1];b++));do
echo -n '*'
done
echo
done
打印出空心的等腰三角形
*
* *
* *
* *
*********
#!/bin/bash
read -p "input the line numb:" numb
for n in `seq $numb` ;do
if [ $n = 1 -o $n = $numb ] ;then
for a in `seq $[$numb-$n]` ;do
echo -n ' '
done
for b in `seq $[${n}*2-1]` ;do
echo -n '*'
done
else
for a in `seq $[$numb-$n]` ;do
echo -n ' '
done
echo -n '*'
for b in `seq $[${n}*2-3]` ;do
echo -n ' '
done
echo -n '*'
fi
echo
done
原创文章,作者:锟,如若转载,请注明出处:http://www.178linux.com/38756