shell 例子
#!/bin/bash##date:2010/08/24#filename:demo.sh#----------------------------- 第一题------------------------function_one(){#判断文件是否存在if ! [ -e $1 ]thenecho "files is not exist"exitfi #获取文件后缀#-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!!" esacecho "decompressing files succeed!"}#function_one $1#-----------------------------第一题 end---------------------------#-----------------------------第二题------------------------------res=1function_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=1v_temp=1function_four(){while [ $# -gt 0 ]dov_temp=`echo $@ | awk -f' ' '{print $1}'`v_shift=`expr $v_shift \* $v_temp`shiftdone }#function_four $@#echo "参数之积为:$v_shift "#-----------------------------第四题 end---------------------------#-----------------------------第五题 ------------------------------function_five(){v_i=$1v_total=0while [ $v_i -gt 0 ]doif ! [ `expr $v_i % 3` = 0 ]then v_i=`expr $v_i - 1`continuefiv_total=`expr $v_total + $v_i`echo $v_iv_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 ]thenmkdir -p $cpdirfi 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---------------------------