Linux shell 指令碼執行個體一

來源:互聯網
上載者:User

1. 寫一個指令碼,利用迴圈計算10的階乘

#!/bin/sh</p><p>factorial=1</p><p>for a in `seq 1 10`</p><p>do</p><p>factorial=`expr $factorial /* $a`</p><p>done</p><p>echo "10! = $factorial"<br />

 

2. 寫一個指令碼,執行後,列印一行提示“Please input a number:",要求使用者輸入數值,然後列印出該數值,然後再次要求使用者輸入數值。直到使用者輸入"end"停止。

#!/bin/sh</p><p>unset var</p><p>while [ "$var" != "end" ]</p><p>do</p><p>echo -n "please input a number: "</p><p>read var</p><p>if [ "$var" = "end" ]</p><p>then</p><p>break</p><p>fi</p><p>echo "var is $var"</p><p>done</p><p>

 

3. 寫一個指令碼,利用迴圈和continue關鍵字,計算100以內能被3整除的數之和

#!/bin/sh</p><p>sum=0</p><p>for a in `seq 1 100`</p><p>do</p><p>if [ `expr $a % 3` -ne 0 ]</p><p>then</p><p>continue</p><p>fi</p><p>echo $a</p><p>sum=`expr $sum + $a`</p><p>done</p><p>echo "sum = $sum"<br />

 

4.一個函數,利用shift計算所有參數乘積,假設參數均為整數

#! /bin/sh</p><p>result=1</p><p>while [ $# -gt 0 ]</p><p>do</p><p>result=`expr $result /* $1`</p><p>shift</p><p>done</p><p>echo $result</p><p>

 

5.寫一個指令碼,可以根據參數檔案名稱,以正確的參數調用tar來解壓縮tar.gz或tar.bz2檔案。

#!/bin/sh</p><p>case ${1##*.tar.} in </p><p>bz2)</p><p>tar jxvf $1</p><p>;;</p><p>gz)</p><p>tar zxvf $1</p><p>;;</p><p>*)</p><p>echo "wrong file type"</p><p>esac</p><p>

 

6.寫一個指令碼以方便使用者查詢rpm的相關資訊。這個指令碼首先提示使用者選取查詢依據,比如檔案名稱,包名,全部等。然後提示使用者選取查詢資訊,比如包名,包裡所包含的所有檔案,包的資訊等。然後詢問是否繼續查詢,是則迴圈剛才的過程,否則退出。

#!/bin/sh</p><p>RPM=/bin/rpm</p><p>option="-q"</p><p>while true</p><p>do</p><p>echo "what to query?"</p><p>select var in "All" "file" "package name" </p><p>do</p><p>case $var in</p><p>All)</p><p>option=$option"a"</p><p>break</p><p>;;</p><p>file)</p><p>echo -n "please input file name: "</p><p>option=$option"f"</p><p>read argument</p><p>break</p><p>;;</p><p>package/ name)</p><p>echo -n "please input package name: "</p><p>read argument</p><p>break</p><p>;;</p><p>*)</p><p>echo "please choose between 1-3"</p><p>;;</p><p>esac</p><p>done</p><p>echo "what do you want to know?"</p><p>select var in "location" "info" "package name"</p><p>do</p><p>case $var in</p><p>location)</p><p>option=$option"l"</p><p>break</p><p>;;</p><p>info)</p><p>option=$option"i"</p><p>break</p><p>;;</p><p>package/ name)</p><p>break</p><p>;;</p><p>*)</p><p>echo "please choose between 1-3"</p><p>;;</p><p>esac</p><p>done</p><p>${RPM} $option $argument</p><p>echo "continue? [yes/no]"</p><p>read answer</p><p>if [ answer = "no" ]</p><p>then</p><p>break</p><p>fi

相關文章

聯繫我們

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