概述
1.获取当前日期或者昨天日期(限定日期格式)
logdate=`date +%Y%m%d`
date_1=`date -d "1 day ago" +%Y%m%d`
2.通过shell读取配置文件的数据库信息
SEC_HOME=/app/shell/pub
a.DBNAME=`$SEC_HOME/getEnv.sh DB.NAME`
从getEnv.sh文件中获取指定key的值
b.RESULT=`sed -n "/$1/p" $DIR/res/*.properties | awk -F'=' '{print $2}'`
sed(流编辑器):
-n 不产生命令输出,使用print命令来完成输出
"/$1/p" 显示含有$1的行数据
awk -F'=' 将找到的行数据以'='分隔,找到第2个值并print打印
CNT=`echo $1 | grep PWD | wc -l` 统计调用当前sh文件第一个参数中PWD的个数
$# 统计调用shell脚本时参数的个数
$0 当前脚本的名字
$1 调用shell脚本时第一个参数
$2 调用shell脚本时第二个参数
3.使用shell中mysql命令导入文件到数据库
mysqlImportFile="mysql --local-infile -h数据库ip -u数据库用户名 -p数据库密码 $数据库用户名 -e"
后续可追加以下参数
a.INTO TABLE tableName:将文件内数据插入指定表中
b.REPLACE INTO TABLE tableName:REPLACE作用:有相同数据先删除再插入
c.fields terminated by ',' :文件中以','分割来作为数据库列
d.optionally enclosed by '"':插入时忽略文件中的"符号
e.lines terminated by 'n':文件中以'n'换行分割作为数据库行
f.(colName1,colName2,colName3):指定插入表的列名
4.读取数据库数据到指定文件student.csv
mysqlDealState="mysql -s -N -u$DBUSER -p$DBPWD -h$DBIP -P$DBPORT $DBNAME -e"
TMPFILE=/output/student.csv(这里文件是临时文件可能不存在)
`touch $TMPFILE`(创建文件)
参数解读:
-s:查询结果以逗号分隔数据库列,以换行分隔数据库行
-N:查询结果中不包括列名
`$mysqlDealState "select * from student" > $TMPFILE `
5.shell中执行mysql语句
mysqlDealState="mysql -s -N -u$DBUSER -p$DBPWD -h$DBIP -P$DBPORT $DBNAME -e"
`$mysqlDealState "update student set age = 13 where id = 1 "`
6.在shell脚本中定义变量,=两边不能有空格
7.统计文件中关键字出现次数(这里是统计换行的总数)
FILELINESCOUNT=`grep $'n' ${FILE} |wc -l`
8.echo的不同用法
a.CNT=`echo $1 | grep PWD | wc -l` 统计调用当前sh文件第一个参数中PWD的个数
b.echo "...." 打印到控制台
c.echo "" >> $FILE 打印内容到指定文件夹
9.ifelse流程控制语句(ifelse还可以嵌套使用)
if [ 判断条件 ];then
处理语句
else
处理语句
exit 1
fi
10.whiledo循环
while [ 判断条件 ]
do
符合判断条件执行某些操作
if [ 判断条件 ];then
break //跳出while循环
continue //跳出本次循环,进入下一次循环
else
fi
done
最后
以上就是甜美柜子为你收集整理的shell脚本调用mysql数据库-1的全部内容,希望文章能够帮你解决shell脚本调用mysql数据库-1所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复