1. 程式人生 > >shell 分支語句基礎03

shell 分支語句基礎03

printf 命令介紹
         printf 相比於echo 的移植性更好。且可以格式化字串的輸出樣式。
                       
        printf "%-10s %-8s %-4s\n" 姓名 性別 體重kg  
    printf "%-10s %-8s %-4.2f\n" 郭靖 男 66.1234
    printf "%-10s %-8s %-4.2f\n" 楊過 男 48.6543
    printf "%-10s %-8s %-4.2f\n" 郭芙 女 47.9876

      解釋:
                %-10s 指一個寬度為10個字元(-表示左對齊,沒有-預設為右對齊)
                %4.2f 指格式化為小數,.2指保留兩位小數
                 
    常用的格式替代符:
             %d:Decimal 對應位置引數必須是十進位制整數,否則抱錯
             %s:String  字串--對應位置引數必須是字串
             %c:Char    字元 對應位置引數必須是字串或者字元型
             %f:float   浮點 對應位置引數必須是數字



shell流程控制
     在shell中如果有else分支語句,則在分支中必須有執行語句,否則會報錯

語法格式:
          if condition
           then
               command1
           command2
           fi

      eg:
                a=5
        b=4
        if [ $a != $b ]
           then
               echo "the number is not equal"
        fi


if else 語句的使用直接看例項
         a=87
    if [ $a -gt 90 ]
     then
         echo "the grade is perfect "
    elif [ $a -gt 80 ]
     then
            echo "the grade is good "
    elif [ $a -gt 60 ]    
       then
            echo "the grade is  generic"
    else
            echo "the grade is bad!"
fi


for迴圈語句
      與其它程式語言類似,shell支援for迴圈
         一般格式為:
             for var in arguments...
               do
                   commands
               done

   
            eg:
                 for loop in 1 "hello" 'a' 14.5
             do
          echo "the argument is ${loop}"
             done

while 迴圈語句
        while conditon
          do
             command
          done

在舉例之前我們需要了解一個 let命令
           let命令是bash中用於計算的工具,用於執行一個或多個表示式,變數計算中不需要加上$來表示變數
            如果表示式中包含了空格或者其它特殊字元則必須引起來。

          例項:
               自加操作: let no++
               自減操作: let no--

               簡寫形式: let no+=10, let no-=20

             
                eg:
                       let a=5+4    #注意空格問題
            echo $a     #9

                     b=`expr 6 + 7`
                         echo $b    #13

                 let命令和expr命令的比較

                         let 不需要空格隔開表示式的各個字元。而 expr 後面的字元需要空格隔開各個字元
   
知道了let命令的使用,我們現在可以使用while語句了
                  需要輸出1-10這幾個數字
            
                     number=1
            while((${number}<=10))
                 do
                   echo ${number}
                   let "number++"
              done

case語句
         語法 :
                    case value in
                        1)
                         echo "abc...."
                         ;;
                        2)
                         echo "def...."
                    esac