標籤:vim 指令碼 注釋
從這一節主要學習 控制語句、迴圈語句
注釋、shell多行注釋
shell單行注釋很簡單,只需在每行行首增加#,但是他其實是沒有提供專門的多行注釋的方法的,所以我們採用投巧的方式來多行注釋,用EOF分界符來多行注釋,如下:
1 #! /bin/sh 2 3 file="/Desktop/file.test" 4 5 <<EOF 6 if [ -r $file ] 7 then 8 echo "1" 9 fi 10 11 if [ -w $file ] 12 then 13 echo "3" 14 else 15 echo "4" 16 fi 17 EOF 18 19 if [ -f $file ] 20 then 21 echo "file is an ordinary file" 22 fi
上面代碼中5 - 17行就被注釋掉了。
if判斷語句
if判斷語句應該已經很熟悉了,前面很多例子都使用了if判斷語句,這裡直接上倆個程式,並提供運行結果。
1 #! /bin/sh 2 3 var="test" 4 5 if [ $var == test1 ] 6 then 7 echo "1" 8 else if [ $var == test ] 9 then 10 echo "2" 11 fi 12 fi
運行結果:2
上面使用的結構是
if ...
then ...
else if ...
then ...
fi
fi
另外一種結構是:
1 #! /bin/sh 2 3 var="test" 4 5 if [ $var == test1 ] 6 then 7 echo "1" 8 elif [ $var == test ] 9 then 10 echo "2" 11 fi
運行結果也是2,這個結構和上面的類似,只是中間的else if ... fi 被換為elif了。
迴圈語句
for迴圈
先看一個例子:
1 #! /bin/sh 2 3 for (( i=0; i<10; i++)) 4 do echo $i 5 done
乍看起來還是很熟悉的,但是實際上需要注意如下幾點:
1,for迴圈要用雙括弧 括起來,即: ((...;...;...;))
2,do 和 done是必不可少的
輸出結果就是從0到9所有數字
while迴圈
1 #! /bin/sh 2 3 i=0 4 while((i<10)) 5 do 6 echo $i 7 let i++ 8 done
該迴圈的作用與上面的for迴圈結果輸出一樣。
while迴圈的結構是:
while ...
do ...
done
until迴圈
until迴圈使用很少,結構類似c/c++ java的do while迴圈,但實際條件是終止條件 而非c/c++裡面的執行條件。這裡略做介紹,個人建議瀏覽即可,也可跳過。
結構:
until ...
do ...
done
1 #! /bin/sh 2 3 i=0 4 until((i>=10)) 5 do 6 echo $i 7 let i++ 8 done
上面迴圈執行結果與之前的相同,請注意這裡until裡面的條件是允出準則。
數組
看for in 和 case 語句前,先瞭解一下shell數組
表示方式:
方式一:arraynum=(1 2 3 4 5)
方式二:
arraynum[0]=0
arraynum[1]=1
arraynum[2]=2
擷取數組的長度的方式:${#arraynum[@]} (arraynum[@]實際上arraynum的列表,計數符號我們在前面講過,所以這個運算式不難理解)
for in 語句
接著我們來看如何遍曆輸出數組
1 #! /bin/sh 2 3 arraynum[0]=a 4 arraynum[1]=b 5 arraynum[2]=c 6 7 for var in ${arraynum[@]} 8 do 9 echo ${var} 10 done 11 12 echo ${#arraynum[@]} 13 echo ${arraynum[@]}
上面就使用了for in語句遍曆輸出數組內容,最後倆句是為了驗證上面我所說的,${#arraynum[@]}是計算數組的長度,${arraynum[@]}是數組列表。
我們來看看輸出結果:
for in語句的結構如下:
for 變數名 in 列表
do ...
done
該運算式語句比較常用,我們需要熟記他的形式和用法。
快速入門shell指令碼編寫(三)