2個簡單shell指令碼(if,while,case語句)

來源:互聯網
上載者:User

標籤:shell指令碼 wlile if case 迴圈語句

實驗要求:

1、編寫一個名為sum.sh的指令碼,提示使用者輸入一個小於100的整數,並計算從1到該數之間所有整數的和

2、編寫一個名為tar.sh的指令碼,用來解壓.tar.gz或.tar.bz2格式的壓縮檔,要求採用case語句


實驗步驟:

(一)

vi sum.sh


#!/bin/bash

# this is sum


while :      #迴圈條件為真,等同於while true,如果沒有exit 0或者break 則一直執行迴圈

do

read -p  "請輸入一個1-100的整數: " nu   #把螢幕輸出的數字賦值給變數nu

expr $nu + 0 &> /dev/null     #此條語句作用是判斷這個數字是否為0或者不是整數,並且不在螢幕顯示這個數

if [ $? -ne 0 ] || [ $nu -ge 100 ]   #如果上條語句是非0的結果則表示錯誤,或者這個數大於等於100也不符合實驗要求

    then   echo "您輸入的$nu不符合要求請重新輸入:"  #提示錯誤資訊要求重新輸入

else        #不是以上結果則執行下面的語句

s=0 i=1     #給變數初始化賦值 

while [ $i -le $nu ]      #因為當輸入的數字小於100都要執行相加,所以當i大於這個數時停止迴圈

do

s=$(expr $s + $i)  #s從0開始,i從1開始,把每次迴圈的結果賦值給s然後繼續和i相加,一直加到輸入的整數

let i++      #每迴圈一次i+1

done

echo "1-$nu之間的整數和是:$s"  #將結果輸出,停止迴圈

break

fi

done


驗證結果:

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/54/2E/wKioL1R7MfWAZ1CyAAB08G23yhM870.jpg" style="float:none;" title="1.jpg" alt="wKioL1R7MfWAZ1CyAAB08G23yhM870.jpg" />

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/54/2F/wKiom1R7MW6S_F39AADdp8_Przk488.jpg" style="float:none;" title="2.jpg" alt="wKiom1R7MW6S_F39AADdp8_Przk488.jpg" />


(二)

vi tar.sh


#!/bin/bash

# this is test


read -p "請輸入您想解壓的壓縮檔:" f    #將輸入的檔案名稱賦值給變數f

s=$(file $f | awk ‘{print $2}‘)      #判斷這個檔案是哪種格式的壓縮檔

case $s in   #若結果為gzip則用gzip解壓

gzip)

echo "將用gzip工具為該檔案解壓"

tar -zvxf $f

;;

bzip2)       #若結果為bzip2則用bzip2解壓

echo "將用bzip工具為該檔案解壓"

tar -jxvf $f

;;

*)           #其他結果則表示不是壓縮檔,螢幕輸出錯誤資訊

echo "不是標準的壓縮檔"

esac


驗證結果:

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/54/2F/wKiom1R7MsfwhzwCAACua4h6qqQ132.jpg" title="3.jpg" alt="wKiom1R7MsfwhzwCAACua4h6qqQ132.jpg" />

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/54/2E/wKioL1R7Mx-RZ0kdAAB1-lNr3n4072.jpg" style="float:none;" title="4.jpg" alt="wKioL1R7Mx-RZ0kdAAB1-lNr3n4072.jpg" />

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/54/2E/wKioL1R7MyDTmnA-AABPeP6JQWY959.jpg" title="6.jpg" style="float:none;" alt="wKioL1R7MyDTmnA-AABPeP6JQWY959.jpg" />

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/54/2F/wKiom1R7MpeQCCqaAAC3tXWzTrc537.jpg" style="float:none;" title="5.jpg" alt="wKiom1R7MpeQCCqaAAC3tXWzTrc537.jpg" />



本文出自 “挨踢女的網路成長之路” 部落格,請務必保留此出處http://shengjie.blog.51cto.com/8734352/1584881

2個簡單shell指令碼(if,while,case語句)

相關文章

聯繫我們

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