【前言】

练习shell,提高逻辑能力。


【脚本】

三角形与菱形均通过几个for循环实现,当然也可以用while。

下面是脚本内容:

[三角形]

#!/bin/bash
read -p "please input the longs:" long
for((i=1;i<=$long;i++))
do
    for((j=$long;j>i;j--)) #控制空格输出
    do
        echo -n " "
    done
    for m in `seq 1 $i`  #输出所在行数相同的数字个数,如在第三行,就输出3个3
    do
        echo -n "$i"     
    done
    #for((n=1;n 
    

执行后的效果图:

shell脚本输出菱形与等边三角形_第1张图片

若将上述脚本内层的两个for循环内"echo -n "$i""的$i换为*后,再次执行脚本效果如下:

shell脚本输出菱形与等边三角形_第2张图片


[菱形]

#!/bin/bash
read -p "please input the longs:" long
for((i=1;i<=$long;i++))              #图形上半部分
do
    for((j=$long;j>i;j--))
    do
        echo -n " "
    done
    for m in `seq 1 $i`
    do
        echo -n "*"
    done
    #for((n=1;n 
    

改进后:

#!/bin/bash
read -p "please input the longs:" long
for((i=1;i<=$long;i++))       #控制行数
do
    for((j=$long;j>i;j--))    #控制空格输出
    do
        echo -n " "
    done
    
    let "g=2*i-1"

    for m in `seq 1 $g`       #控制*数量
    do
        echo -n "*"
    done

    echo ""
done

for((i=2;i<=$long;i++))       #控制行数
do
    for ((j=1;j 
    

执行后的效果图:

shell脚本输出菱形与等边三角形_第3张图片