Shell中關於if,case,for,while等的總結
阿新 • • 發佈:2019-02-16
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。
3、關於case的運用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
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 !!"