用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.www58058.com/38756

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

相關推薦

  • SDCC 2017互聯網運維開發實戰峰會上海站

    3月17日-19日,由CSDN重磅打造的互聯網運維開發實戰峰會、數據庫核心技術與應用實戰峰會和互聯網應用 架構實戰峰會將在上海舉行。 作為SDCC 2017(中國軟件開發者大會)系列技術峰會的一部分,秉承干貨實料(案例)的內容原則。 這三場峰會將邀請業內頂尖的架構師和技術專家,共同探討運維工具研發與實踐、運維自動化系統的構建、大數據與運維…

    Linux干貨 2017-02-11
  • 馬哥教育網絡班N22期+第4周課程練習

    馬哥教育網絡班N22期+第4周課程練習 1. 復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 cp -rf /etc/skel /home/tuser1  chmod -R go= tuser1/ 2. 編…

    Linux干貨 2016-09-19
  • iptables初探

    iptables 簡述 基礎知識 命令使用 簡述 iptables是什么?netfilter又是什么? iptables是位于用戶控件的一個防火墻規則控制管理工具。netfilter是位于內核中的真正的防火墻,由五個鉤子函數(hooks)而組成。 iptables的作用是什么? 用來添加,刪除,管理netfilter規則。 netfilter的作用是什么? …

    2016-05-31
  • 用戶與權限管理

    用戶與權限管理      昨天學完了用戶與權限管理,講解了用戶的運行機制和權限的作用。 用戶的產生來源于3A機制:    認證(Authentication):就是驗證用戶身份的。    授權(Authorization) :驗證完身份后,…

    2017-07-27
  • 內核編譯安裝 (用NTFS模塊)

    內核編譯安裝 (用NTFS模塊) 1 rz 下載的 的內核最新文件 在這 https://www.kernel.org/ 2 tar xvf linux-4.12.10.tar.xz 解壓文件 內核文件一般都放在 /usr/src/ 3 cd linux-4.12.10/ 4 [root@god linux-4.12.10]#cp /boot/config-…

    2017-09-04
  • sed文本處理工具

    Sed是一種流編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”(pattern space),接著用sed命令處理緩沖區中的內容,處理完成后,把緩沖區的內容送往屏幕。接著處理下一行,這樣不斷重復,直到文件末尾。文件內容并沒有改變,除非你使用重定向存儲輸出。Sed主要用來自動編輯一個或多個文件,簡化對文件的反復操作,編寫轉…

    Linux干貨 2017-12-02
欧美性久久久久