Linux shell 指令碼例項一

2021-06-11 10:49:20 字數 2681 閱讀 1254

**:

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

#!/bin/sh

factorial=1

for a in `seq 1 10`

do factorial=`expr $factorial \* $a`

done

echo "10! = $factorial"

注:上面有一行,for a in `seq 1 10`,其中seq 1 10 , 即列出現1到10之間所有的數字,這一行也可改為:for a in "1 2 3 4 5 6 7 8 9 10"

2. 寫乙個指令碼,執行後,列印一行提示「please input a number:",要求使用者輸入數值,然

後列印出該數值,然後再次要求使用者輸入數值。直到使用者輸入

#!/bin/sh

unset var

while [ "$var" != "end" ]

do echo -n "please input a number: "

read var

if [ "$var" = "end" ]

then

break

fiecho "var is $var"

done

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

#!/bin/sh

sum=0

for a in `seq 1 100`

do if [ `expr $a % 3` -ne 0 ]

then

continue

fiecho $a

sum=`expr $sum + $a`

done

echo "sum = $sum"

4.乙個函式,利用shift計算所有引數乘積,假設引數均為整數( 

特殊變數$# 表示包含引數的個數)

#! /bin/sh

result=1

while [ $# -gt 0 ]

do result=`expr $result \* $1`

shift

done

echo $result

5.寫乙個指令碼,可以根據引數檔名,以正確的引數呼叫tar來解壓縮tar.gz或tar.bz2檔案。

#!/bin/sh

case $ in

bz2)

tar jxvf $1

;;gz)

tar zxvf $1

;;*)

echo "wrong file type"

esac

6.寫乙個指令碼以方便使用者查詢rpm的相關資訊。這個指令碼首先提示使用者選擇查詢依據,比如

檔名,包名,全部等。然後提示使用者選擇查詢資訊,比如包名,包裡所包含的所有檔案,

包的資訊等。然後詢問是否繼續查詢,是則迴圈剛才的過

程,否則退出。

#!/bin/sh

rpm=/bin/rpm

option="-q"

while true

do echo "what to query?"

select var in "all" "file" "package name"

docase $var in

all)

option=$option"a"

break

;;file)

echo -n "please input file name: "

option=$option"f"

read argument

break

;;package\ name)

echo -n "please input package name: "

read argument

break

;;*)

echo "please choose between 1-3"

;;esac

done

echo "what do you want to know?"

select var in "location" "info" "package name"

docase $var in

location)

option=$option"l"

break

;;info)

option=$option"i"

break

;;package\ name)

break

;;*)

echo "please choose between 1-3"

;;esac

done

$ $option $argument

echo "continue? [yes/no]"

read answer

if [ answer = "no" ]

then

break

fidone

Linux shell 指令碼例項

1.寫乙個指令碼,利用迴圈計算10的階乘 2.寫乙個指令碼,執行後,列印一行提示 please input a number 要求使用者輸入數值,然後列印出該數值,然後再次要求使用者輸入數值。直到使用者輸入 end 停止 執行指令碼方法 nuhup sh route.sh 注意前面要用上nohup,...

Linux Shell指令碼學習(一)

最近花了一周的時間快速的學習了一下shell指令碼,看的書是 linux shell指令碼程式設計 第三版 僅僅整理了一些筆記,不做技術交流也不算分享,只是作為自己的學習之路的記錄,務戀。shell one 開始學習linux shell指令碼,首日了解了linux命令列 linux shell終端...

linux shell指令碼攻略 一

變數數 算 重定向陣列 別名終端資訊 日期相關 除錯指令碼 函式和引數 管道命令 字段分隔符和迭代器 迴圈算術比較 檔案系統相關測試 字串比較 日期內容 格式星期 a 例如 sat a 例如 saturday 月 b 例如nov b 例如 november 日 d 例如31 固定格式日期 d 例如 ...