bash循環控制語句之 continue 、break


循環控制:

        continue: 提前結束本次循環而開始評估下一輪;
        break [n]: 跳出當前循環 ,如果有多層默認不指定則跳出一層(n 可以指定跳出幾層循環,n大於或等於1,如當需要跳出多個for循環)




練習:

1、求100以內所整數之和;

#!/bin/bash
#
declare -i sum=0
declare -i i=1
#
while true;do
        if [ $i -gt 100 ];then
                break    \\ 如果條件滿足則跳出while循環
        else
                let sum=$sum+$i
                let i++
        fi
done
        echo $sum

2、求100以內所有偶數之和;

#!/bin/bash
#
declare -i sum=0
declare -i i=1
#
while [ $i -le 100 ];do
           if [ $[$i%2] -eq 1 ];then
                let i++
                continue   \\ 如果條件滿足則結束本次循環,後面的語句將不再進行。
           fi
                let sum+=$i
                let i++
done
        echo $sum


3、提示用戶輸入用戶名,顯示用戶的ID號;直到用戶輸入quit退出;

#!/bin/bash
#
while true;do
read -p "please enter user: " userName
        if [ "$userName" == quit ];then
                exit 7
        fi
        if [ -z "$userName" ] || ! id $userName >& /dev/null ;then
                echo "you enter user not exist or null."
                continue
        fi
                echo "$userName ID Number Is:`id -u $userName`"

done


4、

(a)、提示用戶輸入一個磁盤設備的設備文件,如果設備文件不存在,就提示用戶重新輸入,直到用戶輸入正確爲止;
(b)、用戶可以輸入quit退出;

#!/bin/bash
#
while true;do
 read -p "please enter block device: " Device
        if [[ "$Device" == quit ]];then
                exit 8
        fi
        [ -b "$Device" ] && break || echo "error enter !!!"
done
echo "you enter block device is: $Device."



擴展前一題
    當用戶給出正確的塊設備後:
    1、顯示用戶輸入塊設備,並提示用戶,後續的操作會損壞設備上的所有文件,讓用戶選擇是否繼續
    2、如果用戶輸入y,則繼續後面的操作;
    3、如果用戶輸入n,則顯示用戶選擇了中止,並退出腳本;
    4、輸入任何其它字符,則讓用戶重新選擇;


    5、如果用戶選擇了y, 則抹除指定塊設備上的所有分區;

#!/bin/bash
#
while true;do
 read -p "please enter block device: " Device
        if [[ "$Device" == quit ]];then
                exit 8
        fi
        [ -b "$Device" ] && break || echo "error enter !!!"
done
echo "you enter block device is: $Device."

while true;do
 read -p "enter Y|y contiue or N|n exit." option
        option=`echo $option | tr 'A-Z' 'a-z'`
 if [[ "$option" == y ]];then
        break

 elif [[ "$option" == n ]];then
        exit 7
 else
         echo "Wrong input..."
 fi
done
dd if=/dev/zero of=$Device bs=512 count=1


練習:寫一個腳本
    前提:配置好yum源
    1、如果本機沒有一個可用的yum源,則提示用戶,並退出腳本(4);如果此腳本非以root用戶執行,則顯示僅有root纔有權限安裝程序包,而後退出(3);
    2、提示用戶輸入一個程序包名稱,而後使用yum自動安裝之;儘可能不輸出yum命令執行中的信息;
        如果安裝成功,則綠色顯示,否則,紅色顯示失敗;
    3、如果用戶輸入的程序包不存在,則顯示錯誤後讓用戶繼續輸入;
    4、如果用戶輸入quit,則正常退出(0);
    5、正常退出前,顯示本地共安裝的程序包的個數;

















發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章