shell之指令碼練習

來源:互聯網
上載者:User

標籤:

 

做一個需求流程圖需求分析-方案設計-具體實現訓練點sed,echo,test,if,while,shift1.需求分析:練習test的-d方案設計:體現的是思路,先定義一個變數,用條件去判斷具體實現:輸入:如下[[email protected]250-shiyan sh]# cat > mytesta=/root/sh/sedif [ -d $a ]thenecho "$a is a directory"fi輸出:正確滿意[[email protected]250-shiyan sh]# chmod u+x mytest[[email protected]250-shiyan sh]# ./mytest/root/sh/sed is a directory2.需求分析:上一步雖然實現,但只有一個目錄,並且是死的,不靈活。並且如果不是目錄,沒有相應的輸出。方案設計:把目錄換成檔案,加入非目錄時的輸出。具體實現:用sed在命令列直接修改源檔案。即可要點:-e,多次編輯要用到。輸入:如下[[email protected]250-shiyan sh]# sed -i -e ‘s/sed/mem/‘ -e ‘/echo/a\\else echo "$a is a file"‘ mytest輸出:正確滿意[[email protected]250-shiyan sh]# ./mytest/root/sh/mem is a file3.需求分析:將目錄在指令碼裡定死,不方便,如何去在命令列傳入檔案名稱參數,這樣就方便了。方案設計:具體實現:用sed在命令列直接修改源檔案,注釋掉第一行輸入:如下[[email protected]250-shiyan sh]# sed -i -e ‘1s/a/#&/‘ -e ‘s/\$a/\$1/‘ mytest[[email protected]250-shiyan sh]# cat mytest#a=/root/sh/memif [ -d $1 ]thenecho "$1 is a directory"else echo "$1 is a file"fi輸出:正確滿意[[email protected]250-shiyan sh]# ./mytest forfor is a file[[email protected]250-shiyan sh]# ./mytest awkawk is a directory4.需求分析:如果能在命令列測試多個檔案或目錄就好了方案設計: 每次迴圈時加入一個條件判斷即可,並相應輸出。具體實現:用while迴圈與shift來實現位置參數個數的不確定,要點:until迴圈和while迴圈的結構基本相同,但是until是判斷條件運算式為假時才繼續迴圈!痛點:-n是用來測試字串是否為空白的$* 是以一個單字串顯示所有向指令碼傳遞的參數,與位置變數不同,參數可超過9個該變數包含了所有輸入的命令列參數值。如果您運行showrpm openssh.rpm w3m.rpm webgrep.rpm此時 $* 包含了 3 個字串,即openssh.rpm, w3m.rpm and webgrep.rpm.輸入:如下[[email protected]250-shiyan sh]# vi mytest1while [ -n "$*" ]doif [ -d $1 ]thenecho "$1 is a directory"else echo "$1 is a file"fishiftdone輸出:正確滿意[[email protected]250-shiyan sh]# ./mytest1 awk for fr sed selawk is a directoryfor is a filefr is a filesed is a directorysel is a file

 

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.