#!/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=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 ] 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---------------------------
shell 例子
最新推荐文章于 2025-12-15 13:40:30 发布
396

被折叠的 条评论
为什么被折叠?



