常用到的几个shell方法

在公司经常用到的几个方法,做个备份

1:执行sql语句

function executeSql()
{
  sql="$1"  
  if [ "$sql" = "" ]
  then
    cat | mysql -uroot test --local-infile  -N -f
  else
    echo "$sql" | mysql -uroot test --local-infile  -N -f
  fi
}
2:产生序号
function range(){
  n="$1"
  if [ "$n" = "" ]
  then
    n=100
  fi
  len=`expr length $n - 1`
  echo "" | awk -F"\t" '{
    for(i=0;i<num;i++){
      printf("%0'${len}'d\n",i);
    }
  }' num=${n}
}
3:去掉字符串头尾空格
#示例:trim "abc "
function trim()
{
    echo "$1" | grep -o "[^ ]\+\( \+[^ ]\+\)*"
}
function initMethod()
{
  theDay="$1"
  if [ "$theDay" = "" ]
  then 
    theDay=`date +%Y%m%d -d "1 days ago "` 
  fi
  theDay2=`date +%Y-%m-%d -d "$theDay"` 
  theDayYesterday=`date +%Y%m%d -d "$theDay 1 days ago "`
  theDayNextDay=`date +%Y%m%d -d "$theDay 1 days"`
  theDayNextNextDay=`date +%Y%m%d -d "$theDay 2 days"`
  echo -e "\n\n `date +\"[ %F %T ] \"` `basename $0`" 
}
##分表联合
function createUnionSql()
{ 
  baseTableName="$1"
  range | while read num
  do
     echo "${baseTableName}_${num},"
  done
}


function createUnionTable()
{
  baseTableName="$1"
  unionSql=`createUnionSql "$1"`;
  unionSql=`echo $unionSql | awk '{print substr($0,0,length($0)-1)}'`
  sql="drop table if exists ${baseTableName};
       create table ${baseTableName} like ${baseTableName}_00;
       alter table ${baseTableName} engine=MRG_MyISAM DEFAULT CHARSET=gbk union=(${unionSql});"
  executeSql "$sql"
}

转载于:https://my.oschina.net/heartdong/blog/124092

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值