shell脚本给我带来的一些坑

本文分享了作者在使用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  的时候 ,它会将目录的信息带上去么 ,你敢确定你的说法吗?反正我被坑了,这是我的代码。

function load_game_data2_dbs(){
file=$1
echo_log "$file  正在导入数据库中"
。。。。。

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上的包导完标志位置位为初始状态
  。。。。。。
  done

load_game_data2_dbs 中,我打印了 
  $Directory/$file  。接着 echo_log也打印了 
  $Directory/$file  猜猜 ,两个输出的是什么?反正我被坑了,后来知道怎么被坑了,原来在load_game_data2_dbs函数中,你需要对file变量加loacl 关键字  ,这个完全和你学的其他语言不一样。

 

转载于:https://www.cnblogs.com/dyllove98/archive/2013/06/07/3125064.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值