循环FTP脚本的共享和说明
	此脚本为本人工作所写,作为shell初学者,可以一起学习下
	第1行为脚本第一行,当运行脚本时告诉系统选择哪一个shell,若没有第一行,系统会选择默认的shell
	1           #!/bin/sh
	    第2-9行验证参数,若参数个数不为1,则报错
	2       #验证参数个数
	3       if [ $# -ne 1 ]
	4       then
	5               echo "Param error !"
	6               echo "Usage: $0 date"
	7               echo "Example: $0 20110808"
	8               exit 1
	9       fi
	10   
	11     #调度日期
	第12-14行,定义变量
	12     etl_date=$1
	13   
	14     ok=`echo ${etl_date}|grep -w "20[0-9][0-9][0-9][0-9][0-9][0-9]"|wc -l`
	第15-22行验证参数格式,若格式不为20xxxxxx,则报错
	15     #验证参数格式
	16     if [ ${ok} -eq 0 ]
	17     then
	18          echo "Param error !"
	19          echo "Usage: $0 date"
	20          echo "Example: $0 20110808"
	21          exit 1
	22     fi
	23   
	第24-26行定义变量
	24     sub1=`echo ${etl_date} | cut -c 1-4`
	25     sub2=`echo ${etl_date} | cut -c 5-6`
	26     sub3=`echo ${etl_date} | cut -c 7-8`
	27   
	第29行从配置文件ftp.cfg中读取所有的系统名称
	28     #获取所有的系统
	29     system_all=` awk -F= '{ if ( $1~/system_name/ ) print $ 2}' /home/edw/cjb/bin/ftp/ftp_get.cfg `
	30   
	31     #获取系统个数
	第32行对刚才读取的系统名称进行统计个数,个数为system_num
	32     system_num=`echo ${system_all} | awk -F+ '{print NF}'`
	33   
	34     echo "当前有[${system_all}]${system_num}个系统"
	35   
	第37行,对num说明一下,用num从1增长到system_num来执行一个循环,如果不用num,也可以用shift移动变量来完成
	36     #循环执行辅助参数
	37     num=1
	38   
	39     #根据系统个数${system_num},执行${system_name}次循环
	40     while [ ${num} -le ${system_num} ]
	41     do
	42      sys_name=`echo ${system_all} | awk -F+ '{print $'$num'}'`
	43      echo "第${num}个系统为${sys_name}"
	第44-48行,从配置文件ftp_get.cfg中读取ftp的ip地址,用户名,密码,远程/本地路径
	44      remote_ip=` awk -F= ' { if ( $1~/'${sys_name}'_ADD/ ) print $2 } ' /home/edw/cjb/bin/ftp/ftp_get.cfg `
	45      user_name=` awk -F= ' { if ( $1~/'${sys_name}'_USR/ ) print $2 } ' /home/edw/cjb/bin/ftp/ftp_get.cfg `
	46      pass_word=` awk -F= ' { if ( $1~/'${sys_name}'_PWD/ ) print $2 } ' /home/edw/cjb/bin/ftp/ftp_get.cfg `
	47      rmt_dir=` awk -F= ' { if ( $1~/'${sys_name}'_REMOTEDIR
	
相关新闻>>
- 发表评论
- 
				
- 最新评论 进入详细评论页>>








