• Linux centos7 bash编程训练__打印各类形状


    利用for循环,打印各种不同的三角形、矩形和菱形。

    主要是fort循环嵌套使用,及条件判断等。

    因方法简单,不作更多解释,部分注释可以帮助初学者掌握代码。

    下面列出代码,供参考。

    #! /bin/bash

    ## 打印输出各种*型形状
    ## 训练打印输出代码

    echo "打印单行*号"
    for i in {1..6};do echo -n "*";done;echo

    echo
    echo "打印单行*号(有空格)"
    for i in {1..6};do echo -n "* ";done;echo
    echo "==========================="

    echo "打印*型直角三角形"
    for i in {1..6};do for ((j=1;j<=i;j++));do echo -n "*";done;echo;done
    echo
    echo "+++++++++++++++++++++++++++"
    echo "打印*型直角三角形(有空格)"
    for i in {1..6};do for ((j=1;j<=i;j++));do echo -n "* ";done;echo;done
    echo
    echo
    echo "==========================="
    echo "打印实心三角形"
    for ((i=1; i<10; i++));do
        for ((n=10; n>=i; n--));do
            echo -n " "
        done
            for ((m=1; m<=i; m++));do
                 echo -n "* "
            done
             echo
    done

    echo
    echo "---------------------"
    echo "打印空心三角形"

    for ((i=1;i<=10;i++))
    do
        for ((j=1;j<=$((10-$i));j++))
        do
            echo -n " "
        done

        for((j=1;j<=$((2*$i-1));j++))
        do
            if [ $j -eq 1 -o $j -eq $((2*$i-1)) -o $i -eq 10 ]
            then
                echo -n "*"
            else
                echo -n " "
            fi
        done
        echo
    done
    echo
    echo "==========================="
    echo "打印*型矩形"

    for i in {1..6};do for ((j=6;j>0;j--));do echo -n "* ";done;echo;done
    echo
    echo  "+++++++++++++++++++++++++++"
    echo "打印*型空心矩形"
    for ((i=1;i<=10;i++))   #外循环循环十遍,这是输出10行
    do
        if ((i>1 && i<10))
        then   #当i值大于1,小于10成立
            echo -n "*"          #不换行输出1个*
            for ((j=1;j<=8;j++))    #k初始值为1,当j值小于等于8,条件成立,每次j值加1
            do
                echo -n "  "  #不换行输出二个空格
            done
            echo -n " *"        #不换行输出一个 *
        else
            for ((n=1;n<=10;n++)) #内循环循环十遍,矩形的列10个*
            do
                echo -n "* "   # 不换行输出符号“* ”
            done
        fi
        echo  #内循环结束,换一次行
    done
    echo "------------------------------"

    echo  "打印菱形"
    echo  "下面的案例为键盘录入一个数,打印一定形状的菱形"

    read -p "请输入菱形大小:" number
    for ((i=0-number+1;i do
        if ((i>=0))
        then
                  ## 正数取原值
            num=$i
          else
                ##负数取绝对值
            num=${i:1} ##变量切片,不要首位字符
          fi

          for ((j=num;j>0;j--))
          do
            ##打印空格
            echo -n " "
          done

          for ((k=1;k<=2*(number-num)-1;k++))
          do
               ##打印"*"
               echo -n "*"
          done
          echo
    done
    部分效果图如下:

    本代码主要使用的是for。当然也可以用while实现。

  • 相关阅读:
    一张照片,如何生成一个二维码?
    Go插件:轻松实现模块化开发与动态功能扩展
    flink问题 集合
    python - yield详解
    优雅处理Golang中的异常
    Vue-Electron初始化项目及打包
    golang八股文整理(持续搬运)
    Go net http包
    目标检测YOLO实战应用案例100讲-基于机器视觉的水稻病虫害监测预警(续)
    【Postman】postman生成测试报告完整步骤(包含命令与newman安装教程链接)
  • 原文地址:https://blog.csdn.net/qq_36142959/article/details/132812466