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
相关文章推荐