Shell指令碼例項

2021-08-31 07:57:27 字數 1276 閱讀 5314

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

#!/bin/sh

factorial=1

for a in `seq 1 10`

dofactorial=`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:",要求使用者輸入數值,然

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

"end"停止。

#!/bin/sh

unset var

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

doecho -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`

doif [ `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 ]

doresult=`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

shell指令碼例項

1.批量建立10個系統賬號test01 test10,並隨機設定8位數密碼 bin bash for i in seq w 10 do useradd test i echo random madsum cut c 8 tee a passwd.txt stdin test i done 2.在目錄...

Shell 指令碼例項

指令碼內容如下 bin bash action 定義函式,進行操作指南 action 1 database mysql uroot p 1 en e show databases grep e schema v mkdir p mnt sqldump e database name sql case...

Shell 指令碼例項

1 使用for迴圈在 www目錄下批量建立10個html 檔案,名稱為隨機小寫10個字母加日期 bin bash if d opt www then mkdir p opt www ficd opt www for i in seq 10 do random echo random md5sum c...