shell脚本练习题

##写一个脚本,利用循环计算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


  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值