1. 程式人生 > >shell腳本之 if,case,for的用法

shell腳本之 if,case,for的用法

if case for

目錄
一.條件選擇:if語句
二.條件判斷:case語句
三.for循環

一.條件選擇:if語句

  1. 單分支
    if 判斷條件;then
    條件為真的分支代碼
    fi
    例子:判斷一個數字是否等於10
    #!/bin/bash
    read -p ‘輸入一個數字‘ num
    if [ $num -eq 10 ];then
    echo 該數字等於10
    fi
  2. 雙分支
    if 判斷條件; then 條件為真的分支代碼
    else 條件為假的分支代碼
    fi
    例子:判斷一個數字是否大於10
    #!/bin/bash
    read -p ‘輸入一個數字‘ num
    if [ $num -gt 10 ];then
    echo 該數字大於10
    else
    echo 該數字不大於10
    fi
  3. 多分枝
    if 判斷條件1; then 條件為真的分支代碼

    elif 判斷條件2; then 條件為真的分支代碼
    elif 判斷條件3; then 條件為真的分支代碼
    else 以上條件都為假的分支代碼
    fi
    例子:判斷一個數字的範圍

            #!/bin/bash
            read -p ‘輸入一個數字‘ num
            if [ $num -lt 10 ];then
                 echo 該數字小於10
            elif [ $num -ge 10 -a $num -lt 20  ];then
                  echo 該數字大於等於10小於20 
            elif [ $num -ge 20 -a $num -lt 50 ];then
                  cho 該數字大於等於20小於50
             else      
                 echo 該數字大於等於50
            fi      

    二.條件判斷case語句

            case $變量名 in
            條件1)
             分支1;;
            條件2)
              分支2;;
            默認條件 *)   
            默認分支;; 
            esac 
                       每個條件後面跟  )結尾 每個分支後面以 ;; 結束
     例子
                 寫一個能判斷yes/no的腳本,(大小寫均能識別,yes九種可能,no四種可能)、
                          #!/bin/bash
            read -p "請輸入yes|no: " q
            case $q in
             [Yy][Ee][Ss]|[Yy])
            echo "yes";;
            [Nn][Oo])
            echo "no";;
                 *)
            echo "請輸入正確的格式"
            esac

    三.for循環

    執行機制:依次將列表中的元素賦值給“變量名”; 每次賦值後即執 行一次循環體; 直到列表中的元素耗盡,循環結束
    for 變量名 in 列表;do
    循環體
    done

    例1 利用for循環 計算1到10所有正整數之和
    #!/bin/bash
    let s=0
    for n in echo {1..10};do
    s=$[$s+$n]
    echo $s
    done
    例2 利用for循環打印99乘法表
    #!/bin/bash
    for i in {1..9};do
    for n in seq 1 $i;do
    echo -n -e " $i"x"$n=$[i*n] "
    done
    echo
    done

    (每一個for要對應一個done)

shell腳本之 if,case,for的用法