shell脚本批量建表
1、我经常用shell脚本批量去建一些表 ,count ....while do [sql stat] done 等等 ,在create table select * from xxxx where 1=2的时候 ,你是否被id没有自动去建立primary key auto_increment 的主键索引给枪毙呢,反正我被坑了。
2、你是否写过函数function(){...} 在函数中接收过参数吧 ,你是不是这么写过 $data="xxx xxx xxx" ,而结果 ,你想你的函数接收一个参数 ,而你却这么传了参数 fun $data ^_^ ,哈哈,实际上效果是这样的,fun xxx xxx xxx ,呵呵,中招了吧 ,所以,你应该这么写 fun "$data"
3、for file in `ls |grep ^this` ,一定用过吧 ,你是否在这个命令之前 cd到一个目录中去 ,那么,你echo $file 的时候 ,它会将目录的信息带上去么 ,你敢确定你的说法吗?反正我被坑了,这是我的代码。
[plain]
function load_game_data2_dbs(){
file=$1
echo_log "$file 正在导入数据库中"
<span style="font-family: Arial, Helvetica, sans-serif;">。。。。。</span>
<span style="font-family: Arial, Helvetica, sans-serif;">}</span>
[plain]
for file in `ls |grep ^attemp`
do
echo_log "已经进入了 最后的循环,准备去导包"
#将这个文件分发到4个DB上的原始数据上去,代auto那个表
load_game_data2_dbs "$Directory/$file"
echo_log "已经将数据 $Directory/$file 导入到4台DB ,准备设置文件完成初始状态/n"
#将4台DB上的包导完标志位置位为初始状态
<span style="font-family: Arial, Helvetica, sans-serif;">。。。。。。</span>
<span style="font-family: Arial, Helvetica, sans-serif;">done</span>
在
[plain]
load_game_data2_dbs 中,我打印了
<span style="font-family: Arial, Helvetica, sans-serif;">$Directory/$file 。接着 echo_log也打印了 </span>
<span style="font-family: Arial, Helvetica, sans-serif;">$Directory/$file 猜猜 ,两个输出的是什么?反正我被坑了,后来知道怎么被坑了,原来在load_game_data2_dbs函数中,你需要对file变量加loacl 关键字 ,这个完全和你学的其他语言不一样。</span>