在看一个外包的项目中发现一个shell文件,内容为:
#!/bin/bash
if [[ -f 'a.txt' ]]
then
unlink 'a.txt'
fi
pushurl='https://test.cn//Home/AppCoupon/pushMsg?majorID='
database='/usr/local/mysql/bin/mysql -uaacoupon -pe4oo23gUnj7cipeubj'
sql="select majorID,openID,ispush,id,cash_fee from a_order where ispush=0 "
#sql="select CONCAT(majorID.'|'.openID.'|'.ispush) from a_order"
#sql="select CONCAT(majorID,openID,ispush) from a_order"
res=`$database aacoupon -e "$sql"|awk 'NR>1'|awk '{print $0","}'`
echo $res>a.txt
sed -i "s#, #\n#g" a.txt
sed -i "s#,##g" a.txt
cat a.txt|while read line
do
majorID=`echo $line|awk -F" " '{print $1}'`
openID=`echo $line|awk -F" " '{print $2}'`
ispush=`echo $line|awk -F" " '{print $3}'`
id=`echo $line|awk -F" " '{print $4}'`
cash_fee=`echo $line|awk -F" " '{print $5}'`
ok=`curl -s $pushurl$majorID"&openID="$openID"&price="$cash_fee`
updatesql="update a_order set ispush=1 where id=$id"
$database aacoupon -e "$updatesql"
done
查了很久linux命令,大致明白了进行了什么操作:1、判断文件是否为普通文件,是则删除2、进行sql操作,将结果集按一定格式输出到a.txt中3、处理a.txt文件,将','和', '替换4、按行读取循环a.txt文件中的内容,将每一行中的5个字段赋值到5个变量,然后进行curl请求(这里请求了一个微信小程序的推送消息的方法),最后更新数据库我大概明白了这个shell脚本是循环推送消息,可是我还是不太清楚这个shell脚本怎么去用,是要在服务器设置定时器调用这个shell脚本吗?还是做如何使用的?我能提供的信息:1、这是一个微信小程序的后台中的一个shell文件2、后台是基于tp3.2框架3、我可能描述的很不清楚,大神可以继续追问
添加回答
举报
0/150
提交
取消