shell基礎知識學習三

來源:互聯網
上載者:User

繼續流程式控制制

這篇是case,它能夠吧變數的內容和多個對比字元進行匹配,匹配成功則執行這部分代碼。它匹配只能是字串。

書寫結構如下:

case  匹配符 in 對比符號)語句;;對比符號)語句;;對比符號)語句;;esac

注意:執行語句的後面必須是雙分號;;。
舉個例子:

目前的目錄下有檔案a.txt,

file  a.txt#執行結果a.txt: ASCII text

就用它的執行結果進行匹配,程式如下

#!/bin/shfileType=`file "$1"` # aa: ASCII textecho ${fileType}case ${fileType} inaa*) echo 'this is file name';;ASCII) echo 'this is file code';;text) echo 'this is type';;*) echo 'this is end'esac#執行結果this is file name

 

上面程式需要注意的地方:fileType=`file "$1"`,最外面的不是單引號,是反引號(也有人說叫重音符,隨便什麼自己知道就可以了)在tab鍵的上面。

在ruby中調用shell指令碼使用重音符,例如:`sh  test.sh`

 

shell中迴圈有:for、while

1、while

 基本結構:

while [ 條件運算式 ]do  ......done
 
巨汗啊啊!寫了半天死機了,csdn沒有自動儲存嗎。重新寫吧
寫個例子:
echo 'put a:'read awhile [ ${a} -lt 100 ]do  echo ${a}  a=` expr ${a} + 1 `done

程式:輸入數字,是否小於100,小於則輸出且+1

 執行結果:輸入96,輸出:96 97 98 99

下面是個很有意思的小程式,輸出結果如下:

00101210232103432104543210565432106765432107876543210898765432109

程式實現方法有很多,以下僅供參考。

i=0while [ ${i} -lt 10 ]do  y=${i}  while [ ${y} -ge 0 ]  do   echo -n ${y}   y=` expr ${y} - 1 `  done  echo ${i}  i=` expr ${i} + 1 `done

2、for

基本結構:

for  沒有$的變數 in  變數do   ...........done

字串的for迴圈,就是對字串按照空格拆分。樣本如下:

for i in "a s d f g h"do echo ${i}done#輸入結果:a s d f g h

數字迴圈。擷取10以內能被三整除的整數,樣本如下:

for i in $(seq 10)doif((i%3==0))thenecho $ifidone#執行結果:369

配合命令的執行。展示目前的目錄下的檔案,樣本:

all=` sudo ls `for i in ${all}do echo ${i}done#執行結果:aacycle.shoperFile.shout.txtprocess.shrename.shstderr.txtstdout.txttest.shtrackCodeCheck.rb

此外shell中的迴圈還有until、select,具體應用可以查看相應資料。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.