快速入門shell指令碼編寫(三)

來源:互聯網
上載者:User

標籤: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指令碼編寫(三)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.