#!/bin/bash # #date:2010/08/24 #fileName:Demo.sh #----------------------------- 第一题------------------------ function_one() { #判断文件是否存在 if ! [ -e $1 ] then echo "files is not exist" exit fi #获取文件后缀 #-F. 表示以短点为分隔符 #print 表示打印 $NF 当前中的记录数 postfix=`echo $1 | awk -F. '{print $NF}'` #将文件后缀换成小写字母 lpostfix=`echo $postfix | tr A-Z a-z` #注意 每个分支结束需要';;'结尾 case $lpostfix in tar ) tar -xvf $1;; gz ) tar -zxvf $1 if [ $? = 0 ] then gzip -df $1 fi;; bz2 ) tar -jxvf $1;; z ) compress -d $1;; * ) echo "not decompressing!!" esac echo "decompressing files succeed!" } #function_one $1 #-----------------------------第一题 end--------------------------- #-----------------------------第二题------------------------------ res=1 function_two() { if [ $1 -gt 0 ] then res=`expr $res \* $1` function_two `expr $1 - 1` fi } #function_two $1 #echo "10!=$res" #-----------------------------第二题 end--------------------------- #-----------------------------第四题 ------------------------------ v_shift=1 v_temp=1 function_four() { while [ $# -gt 0 ] do v_temp=`echo $@ | awk -F' ' '{print $1}'` v_shift=`expr $v_shift \* $v_temp` shift done } #function_four $@ #echo "参数之积为:$v_shift " #-----------------------------第四题 end--------------------------- #-----------------------------第五题 ------------------------------ function_five() { v_i=$1 v_total=0 while [ $v_i -gt 0 ] do if ! [ `expr $v_i % 3` = 0 ] then v_i=`expr $v_i - 1` continue fi v_total=`expr $v_total + $v_i` echo $v_i v_i=`expr $v_i - 1` done } #function_five $1 #echo "0-$1内可以整除3的数据之和为:$v_total" #-----------------------------第五题 end--------------------------- #-----------------------------第六题 ------------------------------ #定时没有实现 function_six() { #需要备份的目录 backup=./log/ #备份后的文件存在目录 cpdir=./backup/log/ if ! [ -d $cpdir ] then mkdir -p $cpdir fi fileName=`date -d today +"%Y%m%d"` fileName=backup_${fileName}.tar.gz tar -zcvf $fileName $backup mv ./$fileName $cpdir if [ $? = 0 ] then echo "备份成功" fi } #function_six #-----------------------------第六题 end--------------------------- #-----------------------------第九题--------------------------- function_nie() { v_i=1 while [ $v_i -le 9 ] do v_j=1 while [ $v_j -le $v_i ] do echo -n "$v_j * $v_i = `expr $v_i \* $v_j` " v_j=`expr $v_j + 1` done echo "" v_i=`expr $v_i + 1` done } function_nie #-----------------------------第九题 end---------------------------