用shell脚本打等腰三角新

   *

  ***

 *****

*******

  预览图形 发现图形由三个变量组成 行数n 每行的空格数a 和每行的符号数b

关系是    a=n-当前行数    b=2xn-1   并且空格都在符号前

根据关系编写脚本

#!/bin/bash

read -p "input the line numb:" numb

for n in `seq $numb` ;do

        for a in `seq $[$numb-$n]` ;do

        echo -n ' '

        done

        for b in `seq $[${n}*2-1]` ;do

        echo -n '*'

        done

echo

done

  脚本一共涉及了4个变量 3个循环 变量numb为总行数 用变量numb定义n n为循环的次数即打印出的行数 变量a为每行空格的数量用numb-n定义 变量b为每行符号数用nx2-1定义

  脚本运行过程是打印第一行时 先打印空格再打印符号 再执行第二行 打印空格符号…..

  echo -n 为打印不换行 最后一个echo 作用为换行

  也可用其他循环表示

#!/bin/bash

read -p "input the line numb:" numb

n=1

while [ $n -le $numb ] ;do

        a=1

        while [[ $a -le $[$numb-$n] ]] ;do

        echo -n ' '

        let a++

        done

        b=1

        while [[ $b -le $[${n}*2-1] ]] ;do

        echo -n '*'

        let b++

        done

let  n++

echo

done

  while循环注意定义开始循环和结束条件 until与while相比 就是while改成until 循环条件取反即可

#!/bin/bash

read -p "input the line numb:" numb

n=1

until  [ ! $n -le $numb ] ;do

        a=1

        until [ ! $a -le $[$numb-$n] ] ;do

        echo -n ' '

        let a++

        done

        b=1

        until [ ! $b -le $[${n}*2-1] ] ;do

        echo -n '*'

        let b++

        done

let  n++

echo

done

  for的另外一种格式

#!/bin/bash

read -p "input the line numb:" numb

for((n=1 ;n <= $numb;n++));do

        for((a=1;a <= $[$numb-$n];a++));do

        echo -n '#'

        done

        for((b=1;b <= $[${n}*2-1];b++));do

        echo -n '*'

        done

echo 

done

  打印出空心的等腰三角形

    *

   * *

  *   *

 *     *

*********

#!/bin/bash

read -p "input the line numb:" numb

for n in `seq $numb` ;do

if [ $n = 1 -o $n = $numb ] ;then

        for a in `seq $[$numb-$n]` ;do

        echo -n ' '

        done

        for b in `seq $[${n}*2-1]` ;do

        echo -n '*'

        done

else

        for a in `seq $[$numb-$n]` ;do

        echo -n ' '

        done

        echo -n '*'

        for b in `seq $[${n}*2-3]` ;do

        echo -n ' '

        done

        echo -n '*'

fi

echo

done

原创文章,作者:锟,如若转载,请注明出处:http://www.178linux.com/38756

(0)
锟
上一篇 2016-08-22 08:44
下一篇 2016-08-22 09:29

相关推荐

  • 计算机的组成及其功能

    计算机的组成及其功能 计算机由五部分组成 运算器 实现算术运算和逻辑运算(和控制器组成CPU) 控制器 控制总线的使用权限,完成寻址和控制对内存当中的访问权限是做读访问还是写访问 存储器 内存,RAM(Random Access Memory) 输入(Input) 下指令,提供数据 输出(Output) 输出数据加工的结果

    2018-02-22
  • redis简介

    redis是一种非关系性数据库,单进程工作模型,通常用来做KV存储,同memcached一样,所有数据加载至内存工作因此工作效率非常快,但他会将内存中的数据同步至磁盘当中,使得数据不会像memcached的一样,断电后丢失数据。 自身支持多种数据结构(此处列出常用数据结构) string:单一的kv存储 hash:支持hash计算后的存储 list:列表存储…

    2017-03-17
  • linux基础第二周

    1. 用chattr命令防止系统中某个关键文件被修改:# chattr +i /etc/resolv.conf 然后用mv /etc/resolv.conf等命令操作于该文件,都是得到Operation not permitted 的结果。vim编辑该文件时会提示W10: Warning: Changing a readonly file错误。要想修改此文件…

    2017-09-09
  • 关于大型网站技术演进的思考(十一)–网站静态化处理—动静分离策略(3)

    原文出处: 夏天的森林   前文里我讲到了网站静态化的关键点是动静分离,动静分离是让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,我们就可以根据静态资源的特点将其做缓存操作,这就是网站静态化处理的核心思路。由此可见,网站静态化处理的核心就是动静分离和缓存两大方面,上篇我简单讲述了动静…

    Linux干货 2015-03-11
  • 马哥教育21期网络班—第15周课程+练习—-awk 总结

    GNU awk: 文本处理三工具:grep, sed, awkgrep, egrep, fgrep:文本过滤工具;pattern sed: 行编辑器 模式空间、保持空间 awk:报告生成器,格式化文本输出; AWK: Aho, Weinberger, Kernighan&nbsp…

    Linux干货 2016-11-14
  • 马哥教育网络班19期+第七周课程练习

    1、创建一个10G分区,并格式为ext4文件系统;   (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;         mke2fs -b 2048 -m 2 -L 'MYDATA' -o defau…

    Linux干货 2016-06-21