用shell解释Symfoware的rdbddlex命令
来源:互联网 发布:国际日期变更线的算法 编辑:程序博客网 时间:2024/05/16 06:34
最近的一个小项目因为不晓得shell编程被PM羞辱了,呜....
具体如下:
Symfoware中有两个命令能够执行DDL:命令rdbexecsql和命令rdbddlex
rdbddlex是比较早的命令,rdbexecsql则是最近开发的,支持DML,最近做了扩展。也支持了DDL
所以,rdbexecsql覆盖了rdbddlex的功能
现在想用rdbddlex的测试集测试rdbexecsql,有一个简单的方法,就是写一个shell程序,用rdbexecsql命令解释rdbddlex
写这个shell,需要用到getopts命令和熟悉rdbexecsql与rdbddlex两个命令之间的差异
删减版的shell程序的框架示意如下:
-----------------------------------------------------------------------rdbddlex程序开始-----------------------------------------------------------------------
#!/bin/bash
#rdbddlex -- use rdbexecsql to replace rdbddlex(include their options)
##############################################################################################
while getopts ":d:xlv:" OPTION
#:对":d:xlv:"的解释:
#":d:xlv:"是rdbddlex支持的参数
#“:“表示之前的option要有相应的参数,比如-d选项后必须跟数据库名
#d之前有个”:“是因为rdbddlex 的选项都是可选的,但是必须跟一个文件名作为rdbddlex 的参数
do
case $OPTION in
d)dbopt=Y
dbname=$OPTARG;;#变量$OPTARG保存了当前$OPTION对应的参数(如果有的话)
x)xopt=Y;;
l)lopt=Y;;
v)if [ ${OPTARG}M = "CLM"M ];then
vopt=Y
else
echo "usage:rdbddlex [ -d 数据库名][ -x ][ -l ][ -v CLM ] 文件名"
exit 1
fi;;
?)echo "usage:rdbddlex [ -d 数据库名 ][ -x ][ -l ][ -v CLM ]文件名"
exit 1;;
esac
done
shift $(($OPTIND - 1))
filename=$*
#*标示所有,也就是取了所有的参数,比如rdbddlex -d db1 file1 file2,
#那么filename=file1 file2,如果filename=$1,则filename=file1
#################################################################################################
#map关系
#无视rdbddlex的-x和-v CLM选项
# rdbddlex的-d选项用rdbexecsql -s替代
# rdbddlex的-l选项用rdbexecsql -c替代
#################################################################################################
if [ ${dbopt}M = "Y"M ];then
if [ ${lopt}M = "Y"M ];then
rdbexecsql -s $dbname -c $filename
else
rdbexecsql -s $dbname $filename
fi
else
if [ ${lopt}M = "Y"M ];then
rdbexecsql -c $filename
else
rdbexecsql $filename
fi
fi
-----------------------------------------------------------------------rdbddlex程序结束-----------------------------------------------------------------------
脚本做好之后,虽然测试时候执行的rdbddlex其实是自己解释过的,用的是rdbexecsql,这样一套测试集就可以被两个命令共用了
- 用shell解释Symfoware的rdbddlex命令
- Symfoware的客户端转码
- Shell脚本中内置命令的解释
- shell多命令执行';'和'&&'命令的区别解释
- SYMFOWARE的一些应用心得(1)
- shell: ar命令选项解释
- shell命令解释器心得
- Shell命令解释器要求
- shell命令语言解释器
- 编写简单的网络版shell命令解释器
- C++基础课 —>命令解释器(SHELL)的用法
- shell的ps命令参数列表解释说明
- 写一个简单的shell命令解释器
- Shell的详细解释
- [shell]用shell写的tree 命令
- Shell命令解释器项目规划
- 自编shell命令解释器
- 使用有限状态机(FSM)解释shell 命令
- 编程中遇到的数学问题
- sql大全超详细【转】
- 超级简单的大写金额转换--阿拉伯数字转中文大写
- 我的webmin配置 | 历史命令
- 光圈优先的应用
- 用shell解释Symfoware的rdbddlex命令
- 电子书下载
- 中标软件发布基于Moblin V2凌动版桌面系统
- As the other Techie Blog server goes unstable, I open another thread here.
- 在全局中监听键盘事件
- J2ME网络编程(httpconnection)
- 实例4:返回对象数组
- C# WINFORM 界面开发常用属性
- js中setTimeout与setInterval的区别