shell编程基本语法(linux编程shell编程语法问题)
本文目录
linux编程shell编程语法问题
注释好了,最后一个应该是重复了。百度贴代码不好看,这里有高亮:***隐藏网址***ftpifc_get.sh--curr_dt=$2 #保存参数2:日期file_name=$1 #保存参数1:文件名data_dir=/home/weblogic/dataload/outerdata #设置数据存放文件夹remote_dir= in/uda # 设置上传到ftp的目标文件夹ftp -n 《《! 》/home/weblogic/dataload/ftpifc.log # 打开ftp,阻止自动登录(-n),记录日志到ftpifc.log,ftp命令从下一行开始直到某行只有!为止open 20.13.0.146 21 #ftp地址和端口user elprogj elprogj #ftp用户名密码lcd ${data_dir} #切换本地目录到文件夹cd filedir #切换ftp远程目录到目标文件夹(以下两行同)cd incd udaprompt # 关闭交互,否则接下来的mget每下载完成一个文件都要用户确认才会进行下一个下载mget *${file_name}*${curr_dt}* # 批量下载所有形如 xxx指定文件名xxx指定日期xxx 的文件close # 断开ftpbye # 关闭ftp程序! # 命令终止符mv ${data_dir}/*${file_name}*${curr_dt}* /home/weblogic/dataload/data # 把下载到的所有文件移动到/home/weblogic/dataload/data文件夹dataload_cust.sh--#/bin/ksh## 文件名命名规则# xxxxxxx xxx xxxxxx xxx.x# 外部接入系统代码,用7位数字码, 交易种类 PCI ,批次日期MMDDYY ,批次顺序号 3 位 ,方向?[5;1H标识(i o)##BASE_ROOT_DIR="/home/weblogic/batch_sh/dataload" # 设置工作目录DATA_DIR="${BASE_ROOT_DIR}/data/" # 数据目录CONTROL_ROOT="${BASE_ROOT_DIR}/ctl/" # 控制目录LOG_ROOT="${BASE_ROOT_DIR}/log/" # 日志目录BAD_ROOT="${BASE_ROOT_DIR}/bad/" # 错误目录DATA_BAK_ROOT="${BASE_ROOT_DIR}/backup/" # 备份目录CURR_DATE=$1 # 参数1:当前日期PROV_CODE=$2 # 参数2:curr_dt=`expr substr "$CURR_DATE" 5 4` # 处理当前日期为$CURR_DATE的第五位开始取4个字符。如果$CURR_DATE是20111010类似的日期格式,那么得到1010这样的月-日格式。file_num=`wc -l ${BASE_ROOT_DIR}/table.txt|awk ’{print $1}’` # 计算table.txt的行数,得到文件数handle_num=0 # 计数变量初值,下同down_num=0while # 循环,"0" = "0" 相当于true,即一直循环do for line in `cat ${BASE_ROOT_DIR}/table.txt ` # 读取table.txt的每一行到变量line,依次循环执行以下do到done之间的语句 do loadfile=`echo $line|awk -F: ’{print $1}’ ` # 文件名是line第一个冒号(:)前面的内容 #${BASE_ROOT_DIR}/ftpifc_get.sh $loadfile $curr_dt # 调用上面一个脚本,从ftp下载所有与loadfile和curr_dt相关的文件 done break; # 退出while循环 down_num=0 for line in `cat ${BASE_ROOT_DIR}/table.txt ` # 类似前一个for do loadfile=`echo $line|awk -F: ’{print $1}’ ` # 同前 loadfile=${loadfile}$curr_dt # 在文件名后加入日期后缀 if # 如果data文件夹存在该文件名,以o和notify为后缀的文件,则 then down_num=`expr ${down_num} + 1` # 下载计数加一 fi=================# 下面这个文件应该是重复了dataload_cust.sh--#/bin/ksh## 文件名命名规则# xxx.x# 顺序号 3 位 ,方向?[5;1H标识(i o)##BASE_ROOT_DIR="/home/weblogic/dataload"DATA_DIR="${BASE_ROOT_DIR}/data/"CONTROL_ROOT="${BASE_ROOT_DIR}/ctl/"LOG_ROOT="${BASE_ROOT_DIR}/log/"BAD_ROOT="${BASE_ROOT_DIR}/bad/"DATA_BAK_ROOT="${BASE_ROOT_DIR}/backup/"CURR_DATE=$1PROV_CODE=$2curr_dt=`expr substr "$CURR_DATE" 5 4`file_num=`wc -l ${BASE_ROOT_DIR}/table.txt|awk ’{print $1}’`handle_num=0down_num=0while do for line in `cat ${BASE_ROOT_DIR}/table.txt ` do loadfile=`echo $line|awk -F: ’{print $1}’ ` #${BASE_ROOT_DIR}/ftpifc_get.sh $loadfile $curr_dt done break; down_num=0 for line in `cat ${BASE_ROOT_DIR}/table.txt ` do loadfile=`echo $line|awk -F: ’{print $1}’ ` loadfile=${loadfile}$curr_dt if then down_num=`expr ${down_num} + 1` fi
linux shell编程中||如何解释
||(命令执行控制) 语法格式如下: command1 || command2 1、命令之间使用 || 连接,实现逻辑或的功能。 2、只有在 || 左边的命令返回假(命令返回值 $? == 1),|| 右边的命令才会被执行。这和 c 语言中的逻辑或语法功能相同,即实现短路逻辑或操作。 3、只要有一个命令返回真(命令返回值 $? == 0),后面的命令就不会被执行。
更多文章:
collapse with relief(with relief跟in relief有什么 区别)
2024年7月2日 18:19
mysqljdbc驱动包(哪个才是MYSQL 的JDBC驱动包)
2024年6月26日 05:22
html超链接点击后变色怎么设置(HTML body 元素中,()属性用于定义超链接被鼠标点击后所显示的颜色)
2024年7月16日 11:20
最新oracle官网下载(oracle安装包,官网如何下载,看不懂英文.请解释下主要意思.)
2024年7月3日 17:14
array什么意思中文翻译(c语言中的array 是什么意思哦)
2024年7月3日 01:51
VB中,表达式Nor(a+b=c–d)是什么表达式?NOR是不是搜索引擎的运算符号
2024年7月24日 20:50
学软件编程好还是学设计好(现在设计专业和编程专业哪一个更好一点)
2024年7月3日 04:17
localstorage使用(localstorage是什么意思)
2024年7月15日 10:53
openssl官方下载(linux中openssl安装需要哪些软件包)
2024年6月4日 06:57