想学shell脚本的进来看看!!!教你如何用shell脚本写出一个菱形的图标

咱们在编写菱形的时候我们要先弄清除它的结构,菱形是正三角形和倒三角形组合在一起就是一个菱形,如下面图(1)
这是一个正三角形,小编把这正三角形划分成了俩个直角三角形,已经红色圈出了。
先看左半边的三角形,先看最上面一层,然后达到这样的显示呢?说白了就是前面九个空格,然后填写了一个数字9,第二层8个空格然后写俩个88,第三次7个空格写777一直循环下去。右半边也是如此,只是有点需要注意右边第二层开始每层数字比左边数字少一,倒三角也是如此,只是把顺序颠倒了一下。那么小编简单的介绍了一下思路,下面开始进行实操!!!

在这里插入图片描述

[root@localhost opt]# vi ling.sh // 编写一个shell文本

#!/bin/bash
zheng() {                  //  这边是编写一个正三角形的函数
for ((i=9; i>0; i--))      // for循环 这里是一个轮数的循环,可以循环9次,每次循环减1
do
  for ((a=1; a<=$i; a++))   // 这里面嵌套了for循环, 这边的意思是a的初始值等于1,a小于等于$i的情况下条件成立,每次循环减1.(小编简单的描述一下程序运行的过程,这边a的值跟$i是息息相关的,那么第一i等于9,到达这边for循环的时候,因为a的初始值是1,a<=$i,所以条件成立,等到下次循环的时候i=8,因为每次循环i都是减1,那这边a=2,因为每次循环a加一,像这样一直循环下去)
  do
  echo -n " "    //  -n是不换行输出,“ ”这是代表空格的意思,也就是不换行输出空格
  done           //  第二个for循环结束了

  for ((b=9; b>=$i; b--))   //b的初始值等于9,b>=$i,每次循环减1
  do 
  echo -n "$i"             //不换行输出$i
  done                    //  结束这个循环
 
  for ((c=8; c>=$i; c--))   // c的初始值等于8,c>=$i的情况下条件成立,每次循环减1  
  do
  echo -n "$i"            // 不换行输出 $i(右半边的每次的数字)
  done
echo ""
     20 done
     21 }
     22 
     23 
     24 dao() {      //  这边是写倒三角的函数
     25 for  ((i=2; i<=9; i++))  // 为什么这边初始值是2,因为正三角和倒三角连接处有一层是重合的,为了避免,初始值直接从2开始 
     26 do
     27   for ((a=1; a<=$i; a++))  
     28   do
     29   echo -n "  "  空格  // 不换行输出空格
     30   done               
     31   for ((b=9; b>=$i; b--))
     32   do
     33   echo -n "$i"    // 这边是输出变量i的数字
     34   done
     35   for ((c=8; c>=$i; c--))  //  这边的for循环是写的倒三角右半边的数值
     36   do  
     37     echo -n "$i"          //不空行写变量$i
     38   done
     39 echo ""
     40 done
     41 }
     42 
     43 zheng  // 调用正三角函数
     44 dao    //调用倒三角函数
     45 

[root@localhost opt]# chmod +x ling.sh //给文本一个执行的权限
[root@localhost opt]# ./ling.sh
//执行的结果如下

在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值