shell编程之双重循环(教你花式打印各种图形)(下)

简介: 1、双重循环概述双重循环需要具备的前提——存在两个以上的自变量。执行机制:

图形7:倒等腰三角形

方法一:

先输出一个空格直角三角形,再输出一个星星填充的反直角三角形,最后输出一个星星填充的倒直角三角形。

#!/bin/bash
 #倒等腰三角形
 #先输出一个空格直角三角形
 #再输出一个星星填充的反直角三角形
 #最后输出一个星星填充的倒直角三角形
 for a in {1..9}
 do
 #输出一个空格填充的直角三角形
    for b in `seq 1 $a`
    do
       echo -n " "
    done
 #再输出一个星星填充的反直角三角形
    for c in `seq $a 9`
    do
       echo -n "*"
    done
 #最后输出一个星星填充的倒直角三角形
    for d in `seq $a 8`
    do
       echo -n "*"
    done
 #用于换行,echo默认打印换行符
    echo
 done
[root@yuji ~]# bash hua7.sh
 *****************
  ***************
   *************
    ***********
     *********
      *******
       *****
        ***
         *
复制代码


网络异常,图片无法展示
|


网络异常,图片无法展示
|


方法二:

#!/bin/bash
 #倒等腰三角形
 #a从9开始
 #先输出一个空格直角三角形
 #之后每行的星星个数=2a-1
 for a in {9..1}
 do
 #输出一个空格填充的直角三角形
    for ((b=9;b>=a;b--))
    do
       echo -n " "
    done
 #每行的星星个数=2a-1
    i=$[(a*2)-1]
    for j in `seq $i`
    do
       echo -n "*"
    done
 #用于换行,echo默认打印换行符
    echo
 done
复制代码


网络异常,图片无法展示
|


网络异常,图片无法展示
|


图形8:菱形(正等腰三角形+倒等腰三角形)

先输出一个正等腰三角形(9行);再输出一个倒等腰三角形(8行)。

#!/bin/bash
 #菱形
 #正等腰三角形+倒等腰三角形
 #正等腰三角形,一共9行
 for a in {1..9}
 do
 #输出一个空格填充的倒直角三角形
    for ((b=9;b>=a;b--))
    do
       echo -n " "
    done
 #每行的星星个数=2a-1
    i=$[(a*2)-1]
    for j in `seq $i`
    do
       echo -n "*"
    done
    echo
 done
 #倒等腰三角形,一共8行
 for a in {8..1}
 do
    for ((b=9;b>=a;b--))
    do
       echo -n " "
    done
 #每行的星星个数=2a-1
    i=$[(a*2)-1]
    for j in `seq $i`
    do
       echo -n "*"
    done
    echo
 done
 [root@yuji ~]# bash hua8.sh
         *
        ***
       *****
      *******
     *********
    ***********
   *************
  ***************
 *****************
  ***************
   *************
    ***********
     *********
      *******
       *****
        ***
         *
复制代码


网络异常,图片无法展示
|


网络异常,图片无法展示
|


图形9:平行四边形

方法一:

先输出一个空格填充的直角三角形,之后每行输出相同个数的星星。

#!/bin/bash
 #平行四边形
 #先输出一个空格填充的直角三角形
 #之后每行输出相同个数的星星
 for a in {1..9}
 do
 #输出一个空格直角三角形
    for b in `seq 1 $a`
    do
       echo -n " "
    done
 #每行输出9个星星
    for c in {1..9}
    do
       echo -n "*"
    done
    echo
 done
 [root@yuji ~]# bash hua9.sh
 *********
  *********
   *********
    *********
     *********
      *********
       *********
        *********
         *********
复制代码


网络异常,图片无法展示
|


网络异常,图片无法展示
|


方法二:

先输出一个空格填充的倒直角三角形,之后每行输出相同个数的星星。

#!/bin/bash
 #平行四边形
 #先输出一个空格填充的直角三角形
 #之后每行输出相同个数的星星
 for a in {1..9}
 do
 #输出一个空格直角三角形
    for b in `seq $a 9`
    do
       echo -n " "
    done
 #每行输出9个星星
    for c in {1..9}
    do
       echo -n "*"
    done
    echo
 done
[root@yuji ~]# bash hua09.sh
         *********
        *********
       *********
      *********
     *********
    *********
   *********
  *********
 *********
复制代码


网络异常,图片无法展示
|


网络异常,图片无法展示
|


图形10:直角梯形

将平行四边形左边的空格直角三角形,变成星星直角三角形。

#!/bin/bash
 #直角梯形
 #使用"直角三角形+平行四边形"的方式
 for a in {1..9}
 do
 #输出一个星星填充的直角三角形
    for b in `seq 1 $a`
    do
       echo -n "*"
    done
 #每行输出9个星星
    for c in {1..9}
    do
       echo -n "*"
    done
    echo
 done
[root@yuji ~]# bash hua10.sh
**********
***********
************
*************
**************
***************
****************
*****************
******************
复制代码


网络异常,图片无法展示
|


网络异常,图片无法展示
|


图形11:等腰梯形

先输出一个空格填充的倒直角三角形;之后输出每行的星星,每行的星星个数=n+行数×2(n为任意正整数,每一行的星星个数都比上一行多2个)。

#!/bin/bash
 #等腰梯形
 #先输出一个空格填充的倒直角三角形(9行)
 #每行的星星个数=9+行数×2
 for a in {1..9}
 do
 #输出一个空格填充的倒直角三角形
    for ((b=9;b>=a;b--))
    do
       echo -n " "
    done
 #每行输出(9+2a)个星星
    i=$[9+a*2]
    for ((c=1;c<=i;c++))
    do
       echo -n "*"
    done
    echo
 done
 [root@yuji ~]# bash hua11.sh
         ***********
        *************
       ***************
      *****************
     *******************
    *********************
   ***********************
  *************************
 ***************************
复制代码


网络异常,图片无法展示
|


网络异常,图片无法展示
|

相关文章
|
1月前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
2月前
|
Shell
Shell编程(下)
Shell编程(下)
111 1
|
2月前
|
Shell Linux Windows
Shell编程(上)
Shell编程(上)
47 1
|
2月前
|
Shell Linux 开发工具
|
2月前
|
监控 Unix Shell
shell脚本编程学习
【10月更文挑战第1天】shell脚本编程
84 12
|
Shell Linux
Linux操作系统实验七 Shell编程之循环程序编程(下)
Linux操作系统实验七 Shell编程之循环程序编程(下)
179 0
|
Shell Linux
Linux操作系统实验七 Shell编程之循环程序编程(中)
Linux操作系统实验七 Shell编程之循环程序编程(中)
148 0
|
Shell C语言
shell编程之for、while、until循环语句
shell编程之for、while、until循环语句
103 1
|
运维 监控 应用服务中间件
【运维知识高级篇】34道Shell编程练习题及答案(从基础到实战:基础+计算+判断+循环+控制与数组+实战进阶)(二)
【运维知识高级篇】34道Shell编程练习题及答案(从基础到实战:基础+计算+判断+循环+控制与数组+实战进阶)(二)
999 0
|
运维 Shell Linux
【运维知识高级篇】34道Shell编程练习题及答案(从基础到实战:基础+计算+判断+循环+控制与数组+实战进阶)(一)
【运维知识高级篇】34道Shell编程练习题及答案(从基础到实战:基础+计算+判断+循环+控制与数组+实战进阶)
707 0