用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

相关推荐

  • bash特性之命令行展开功能应用示例

                       bash特性之命令行展开功能应用示例 1.创建/tmp的目录下:a_c,a_d,b_c,b_d 创建命令:mkdir -pv /tmp/{a,…

    Linux干货 2017-07-09
  • N25-第一周

    一:计算机主要组成及其功能 计算机的主要组成部分可以归纳为以下五个部分:控制器、运算器、存储器、输入设备、和输出设备。  功能介绍:         1.控制器          …

    Linux干货 2016-12-04
  • 第二十二周作业

    1、请描述本地文件系统和分布式文件系统的特点; 本地文件系统: 本地文件系统主要是指Ext2,Ext3,Btrfs,XFS这类(很难概括,只好举例子),它们通常提供以下功能: 1.扩展性:随着系统容量的增加保持性能,不随容量变化而导致性能震荡。比如一个目录下的海量文件,在EXT2/3中由于目录设计问题会导致较大的性能问题。再比如EXT2/3中的Metadat…

    2017-09-23
  • week3:cut,sort,grep等shell工具的应用及用户,组管理类命令

    1、列出当前系统上所有已经登录的用户的用户名,注意,同一个用户登录多次只显示一次即可    who | cut -d' ' -f1 | sort –u 2、取出最后登录到当前系统的用户相关信息    who | cut -d' ' -f1 | tail -1 | id 3、取出当…

    Linux干货 2016-11-20
  • 文件系统挂载

    文件系统挂载 文件系统管理: 将额外文件系统与根文件系统某现存的目录建立起关联关系,进而使得此目录做为其它文件访问入口的行为称之为挂载;  解除此关联关系的过程称之为卸载;  把设备关联挂载点:Mount Point mount  卸载时:可使用设备,也可以使用挂载点 umount  注意:挂载点下原有文件在挂载完成后…

    Linux干货 2015-12-16
  • httpd配置

    1、Centos7系统下实现httpd-2.2的安装,并分别实现prefork、worker、event等几种工作方式

    2、简述request报文请求方法和状态响应码

    3、详细描述httpd虚拟主机、站点访问控制、基于用户的访问控制、持久链接等应用配置实例

    Linux干货 2018-02-05