您的位置:首页 > 运维架构 > Shell

shell脚本练习题

2015-05-13 22:36 555 查看
##写一个脚本,利用循环计算10的阶乘##

#!/bin/sh
result=1

for val in `seq 1 10`
do
result=$(($result*$val))
done

echo $result


##写一个脚本,执行后,打印一行提示“Please input a number:",
##要求用户输入数值,然后打印出该数值,然后再次要求用户输入数值。直到用户输入"end"停止。

#!/bin/bash
while true
do
read -p "Please input a number:  " val
if [ $val = "end" ]
then
break
fi
echo $val | grep [a-zA-Z] >>/dev/null ; test $? = 0 && continue
echo $val

done
#写一个脚本,利用循环和continue关键字,计算100以内能被3整除的数之和

#!/bin/bash

for val in `seq 1 100`
do
if [ $(($val%3)) -ne 0 ]
then
continue
fi

SUM=$((SUM+$val))
done

echo $SUM


#一个函数,利用shift计算所有参数乘积,假设参数均为整数

#!/bin/bash
product (){
product_val=1

for val in `seq 1 $#`
do
product_val=$[$product_val*$1]
shift
done

echo $product_val
}

if [ $# -lt 1 ]
then
echo "$0 <nums>"
exit 1

fi
product $@


#写一个脚本,可以根据参数文件名,以正确的参数调用tar来解压缩tar.gz或tar.bz2文件。

#!/bin/bash

if [ $# -lt 1 ]
then
echo "$0 <filenames>"
exit 1
fi

for filename in $@
do
echo $filename | grep [a-zA-Z0-9_]*.tar.gz >/dev/null; gzfile=$?
if [ $gzfile -eq 0 ]
then
tar zxvf $filename
continue
fi

echo $filename | grep [a-zA-Z0-9_]*.tar.bz2 >/dev/null; 	bz2file=$?
if [ $bz2file -eq 0 ]
then
tar jxvf $filename
fi

done
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: