bash腳本循環語句用法練習

bash腳本循環語句用法練習

1、使用循環語句寫一個腳本,實現打印出來國際象棋的棋盤

#方法1:使用until循環語句實現
[root@liang7 bin]# cat chess-until.sh 
#!/bin/bash
#Author:liang
#Version:1.0
#Description:Print the chess board

#Define the number of rows
r=1
until [ $r -gt 8 ] ;
do
    #Define the number of columns
    c=1
    until [ $c -gt 8 ] ;
    do
        if [ `echo $[(r+c)%2]` -eq 0 ] ;then
            echo -ne "\033[43m  \033[0m"
        else
            echo -ne "\033[41m  \033[0m"
        fi
            let c++
    done
    echo
    let r++
done
#方法2;使用while循環語句實現
[root@liang7 bin]# cat chess-while.sh 
#!/bin/bash
#Author:liang
#Version:1.0
#Description:Print the chess board

#Define the number of rows
r=1
while [ $r -le 8 ] ;
do
    #Define the number of columns
    c=1
    while [ $c -le 8 ] ;
    do
        if [ `echo $[(r+c)%2]` -eq 0 ] ;then
            echo -ne "\033[43m  \033[0m"
        else
            echo -ne "\033[41m  \033[0m"
        fi
            let c++
    done
    echo
    let r++
done
#方法3:使用for循環語句實現
[root@liang7 bin]# cat chess-for.sh 
#!/bin/bash
#Author:liang
#Version:1.0
#Description:Print the chess board

#Define the number of rows
for r in {1..8} ;
do
    #Define the number of columns
    for c in {1..8} ;
    do
        if [ `echo $[(r+c)%2]` -eq 0 ] ;then
            echo -ne "\033[43m  \033[0m"
        else
            echo -ne "\033[41m  \033[0m"
        fi
    done
echo
done

1GIF.gif

2、使用循環語句寫一個腳本,實現用“*”打印出等腰三角形的形狀

#方法1:
[root@liang7 bin]# cat sjx1.sh 
#!/bin/bash
#Author:liang
#Version:1.0
#Description:Print out an isosceles triangle

read -p "請輸入想要的三角形層數:" num
until  echo $num|grep -q '^[0-9]\+$' ;
do
read -p "請重新輸入三角形層數:" num
done
if [ $num -eq 0 -o $num -eq 1 ] ; then
echo "您輸入的層數無法組成三角形,輸入的層數應大于等于2"
else
    for line in `seq 1 $num`;
    do
        let n=$num-$line
        m=1
        while [ $n -gt 0 ] ;
        do
        echo -n " "
        let n--
        done 
        while [ `echo $[line*2-1]` -ge $m ];
        do
            echo -n "*"
            let m++
        done
    echo
    done
fi
方法2:
[root@liang7 bin]# cat sjx2.sh 
#!/bin/bash
#Author:liang
#Version:1.0
#Description:Print out an isosceles triangle

read -p "請輸入想要的三角形層數:" num
until  echo $num|grep -q '^[0-9]\+$' ;
do
read -p "請重新輸入三角形層數:" num
done
if [ $num -eq 0 -o $num -eq 1 ] ; then
echo "您輸入的層數無法組成三角形,輸入的層數應大于等于2"
else
    for line in `seq 1 $num` ;
    do
        for((n=(num-line);n>0;n--));
        do
            echo -n " "
        done
        for((m=1;(line*2-1)>=m;m++));
        do
            echo -n "*"
        done
        echo
    done
fi

2GIF.gif

原創文章,作者:苦澀咖啡,如若轉載,請注明出處:http://www.www58058.com/37114

(0)
苦澀咖啡苦澀咖啡
上一篇 2016-08-24 10:25
下一篇 2016-08-24 10:26

相關推薦

  • 第5周作業

    1、顯示當前系統上root、fedora或user1用戶的默認shell     ~]# egrep "^(root|fedora|user1)" /etc/passwd 2、找出/etc/rc.d/init.d/functions文件中某單詞后面跟一組小括號的行,如:hello();  …

    Linux干貨 2017-01-07
  • shell簡單腳本

    Shell小腳本     一.       一. 簡介 從程序員的角度來看, Shell本身是一種用C語言編寫的程序,從用戶的角度來看,Shell是用戶與Linux操作系統溝通的橋梁。用戶既可以輸入命令執行,又可以利用 Shell腳本編程,完成更加復雜的操作。在Linux GUI日益完善的今天,在系…

    Linux干貨 2017-08-06
  • 馬哥教育21期網絡班—第六周課程+練習—-成長進行時

    請詳細總結vim編輯器的使用并完成以下練習題 1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#; [root@localhost ~]# cp /etc/rc.d/rc.sysinit /tmp/rc.sysinit&nbs…

    Linux干貨 2016-08-03
  • OpenSSL:實現創建私有CA、簽署證書請求詳解

    一、OpenSSL:CA默認配置信息     1.證書簽發機構CA:公共信任CA、私有CA                建立私有CA方式如下: 小范圍測試使用openssl、 大…

    Linux干貨 2016-04-30
  • Tomcat基礎及常見使用入門

    Tomcat的簡單介紹,安裝,以及簡單的配置運用

    2017-09-11
  • Linux的常見文件類型

      在linux中,文件的類型和權限通常以【-rwxr-xr-x】來表示,文件以第一個字符來表示不同的文件類型,具體如下。   – :普通文件;顏色為灰白色   d :目錄文件;顏色為藍色   b :塊設備文件;顏色為黃色   c :字符設備文件;顏色為黃色   p :管道文件;顏色為綠…

    Linux干貨 2016-10-20
欧美性久久久久