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
         ***********
        *************
       ***************
      *****************
     *******************
    *********************
   ***********************
  *************************
 ***************************
复制代码


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


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

相关文章
|
3月前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
4月前
|
Shell
Shell编程(下)
Shell编程(下)
123 1
|
4月前
|
Shell Linux Windows
Shell编程(上)
Shell编程(上)
65 1
|
4月前
|
Shell Linux 开发工具
|
4月前
|
监控 Unix Shell
shell脚本编程学习
【10月更文挑战第1天】shell脚本编程
102 12
|
网络协议 Shell Linux
【Linux】shell编程基础(超详细,入门看这一篇就够了)(下)
【Linux】shell编程基础(超详细,入门看这一篇就够了)(下)
119 0
|
9月前
|
存储 Shell C语言
shell脚本 编程 变量 基本入门(详解)
shell脚本 编程 变量 基本入门(详解)
100 1
|
Java Shell Linux
【Linux】shell编程基础(超详细,入门看这一篇就够了)(上)
【Linux】shell编程基础(超详细,入门看这一篇就够了)
884 0
|
Java Shell Linux
shell(一)shell编程入门
开始学习shell编程之前,我先啰嗦几句,作为一个web开发工作者,在部署网站的时候不可避免的要使用linux服务器。 对于大部分同学来说,配置linux服务器的环境是一件很难的事情,包括刚开始接触linux的我也是一样的。 最开始的时候也是碰到了不少坑,走了很多弯路。后来有了第一篇关于服务器环境配置的教程《Centos7.6配置lnmp》关于这篇教程纯粹就是我一点一点试出来的。在百度上各种查,把好用的部分整理在了一起。里边也包含了很多东西,包括yum的配置,nginx的配置文件编写。以上的东西,惭愧点说,我是看不懂的。反正好用了就行了呗。
72 1
|
9月前
|
机器学习/深度学习 Unix Shell
Shell编程基础入门(Bash|变量与输入输出重定向2&1)
Shell编程基础入门(Bash|变量与输入输出重定向2&1)
143 0