Linux脚本练习之script076-打印等腰三角形

Posted 二木成林

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux脚本练习之script076-打印等腰三角形相关的知识,希望对你有一定的参考价值。

script076

题目

注:题目来源于 SHELL19 打印等腰三角形

打印边长为5的等腰三角形。

你的脚本应该输出:

    *
   * *
  * * *
 * * * *
* * * * *

脚本

如果直接使用 echo 输出五行的话,那么意义不大。可以通过循环来进行输出,我们探求它们之间的规律,把原来的空格字符替换成井号字符,发型就变成了一个 5 行 9 列的矩阵。

####*####
###*#*###
##*#*#*##
#*#*#*#*#
*#*#*#*#*

我们可以把每一行当作三部分来输出,规律如下:

  • 第一部分
####
###
##
#

  • 第二部分
    *
   *#*
  *#*#*
 *#*#*#*
*#*#*#*#*
  • 第三部分
####
 ###
  ##
   #
    

看上面的图形就能发现每行的规律变化了,就能很轻易写出循环代码了。

#!/bin/bash

for (( i = 1; i <= 5; i++ )); do
	# 第一部分
    for (( j = 1; j <= 5-i; j++ )); do
        printf " "
    done
    # 第二部分
    for (( j = 1; j <= 2*$i-1; j++ )); do
        if [ $[ $j % 2 ] -eq 0 ]; then
            printf " "
        else
            printf "*"
        fi
    done
    # 第三部分
    for (( j = 1; j <= 5-i; j++ )); do
        printf " "
    done
    printf "\\n"
done

以上是关于Linux脚本练习之script076-打印等腰三角形的主要内容,如果未能解决你的问题,请参考以下文章

Linux脚本练习之script063-打印空行的行号

Linux脚本练习之script065-打印字母数小于8的单词

Linux脚本练习之script077-打印只有一个数字的行

Linux脚本练习之script060-打印文件的最后5行

Linux脚本练习之script037-打印无密码用户。

Linux脚本练习之script006-编写一个脚本,打印任何数的乘法表。