1. 程式人生 > >Shell中關於if,case,for,while等的總結

Shell中關於if,case,for,while等的總結

1、關於if的應用
     if後邊跟的條件必須用[ ](中括號)括起來然後下邊用then ,最後用fi。
1 #!/bin/bash
2 #if test2
3 echo -n "Enter your name: "
4 read NAME
5 if [ "$NAME" == "" ]
6 then
7 echo "You dont't enter any word "
8 fi	
2、關於if/elif/else的應用

        if後邊跟的條件必須用[ ](中括號)括起來然後下邊用then,elif後邊跟的條件也必須用[ ](中括號)括起來然後下邊用then,然後用else最後用if。

1 #!/bin/sh
  2 echo "Please input a number year :"
  3 read year
  4 let "n1=$year%4"
  5 let "n2=$year%100"
  6 let "n3=$year%400"
  7 if [ ! "$n1" -eq 0 ]
  8  then
  9  leap=0
 10  elif [ ! "$n2" -eq 0 ]
 11  then
 12   leap=1
 13   elif [ ! "$n3 -eq 0" ]
 14   then
 15   leap=0
 16   else
 17   leap=1
 18   fi
 19   if [ $leap -eq  1 ]
 20   then
 21   echo "$year is a leap year"
 22   else
 23   echo "$year is not  a leap year"
 24   fi
3、關於case的運用

 case在條件後面必須跟一個in,然後下邊條件用alue)跟的條件語句結尾用兩個;;(分號),最後一個條件為*),最後用上esac。

  1 #!/bin/sh
  2 echo "Please input a month: "
  3 read month
  4 case $month in
  5 1)
  6   echo "yes 1 " ;;
  7 2)
  8   echo "no 2 " ;;
  9 *) 
 10    echo "other " ;;
 11 esac
4、關於for的應用

  1)for的列表迴圈,迴圈體前用in 、,迴圈體用{ }大括號括起來,然後用do和done。

  2)不帶列表的for迴圈,for後直接跟條件,然後用do和done。

 3)類C風格的for迴圈,for後邊用(())兩層雙括號括住條件,條件之間用;分號隔開,然後用do和done。

1 #!/bin/sh
  2 sum=1
  3 for (( i = 1 ;i <= 10 ;i++ ))
  4 do 
  5 let sum*=i
  6 echo sum =$sum
  7 done
  8 echo long sum ="$sum"
5、關於while的應用

 1)在計數器中的while迴圈後邊必須用(())雙層小括號,然後用do和done。

 2)其他條件下while後邊跟的條件必須用[[ ]]雙層中括號括起來或者[ ],然後用do和done。

  1 #用指令碼演示使用結束標記控制while迴圈實現猜1~10內的數
  2 #!/bin/sh
  3 echo "Please input the num (1~~10): "
  4 read num
  5 while [ $num != 4 ]
  6 do
  7   if [  $num -lt 4 ]
  8   then  
  9         echo "Too small ,Try again.."
 10         read num
 11    elif [ $num -gt 4 ]
 12      then 
 13          echo "Too big ,Try again.. "
 14          read num
 15    else
 16      exit 0
 17    fi
 18 done
 19 echo "Yes ,you are right !!"