用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

相关推荐

  • shell脚本编程基础(1)

    一.位置变量相关知识     1.位置变量定义:在脚本代码中调用通过命令行传递给脚本的的参数     2.位置变量种类:              &…

    Linux干货 2016-08-15
  • date 命令练习

    一、课外资料补充: 1.命令格式: date[参数]…[+格式] 2.命令功能: date可以用来显示或设定系统的日期与时间。 3.命令参数: 必要参数: %H小时(以00-23来表示)。 %I小时(以01-12来表示)。 %K小时(以0-23来表示)。 %l小时(以0-12来表示)。 %M分钟(以00-59来表示)。 %P AM或PM…

    Linux干货 2016-08-05
  • 配置yum服务器——以centOS 6.9系统为例

    准备工作 关闭防火墙  关闭防火墙service iptables stop  设置防火墙开机不启动chkconfig iptables off  查看一下防火墙状态 iptables -vnL 如下图,可以看到已经关闭 关闭SElinux 使用命令 vim /etc/selinux/config 将SELINUX=enable…

    Linux干货 2017-08-05
  • 第四周作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其他用户均没有任何访问权限 答:     复制目录:cp -R /etc/skel /home/tuser1     修改权限:chmod -R go=- /home/tuser1 2、编辑/etc/group文件…

    Linux干货 2016-12-07
  • python装饰器1

    简单介绍装饰器(注意格式)

    Linux干货 2017-10-22