一.本章内容
(1):使用Liunx批量去调用接口
(2):使用Liunx sed编辑器被称作流编辑器
(3):使用脚本生产txt文件(1):使用Liunx批量去调用接
二.博主遇到的坑
1.使用脚本curl批量调用接口遇到的坑
(1)实现需要注意的地方:
(2)使用sh 脚本需要用UTF-8的格式(要不出现汉字要乱码)
(3)可以使用file 后面是文件名查看编码格式
(4)查看liunx界面是否是UTF-8;
(5)使用locale查看
(6)如果不是UTF-8设置一下:使用命令export LANG="zh_CN.UTF-8"
(1)~(3):使用Liunx批量去调用接口
#!/bin/bash
#!/bin/bash是一个解释器,表示用sh来解释执行你的命令
#查询下的目录
data_dir=/app/payhome/paytest/xzz
#查询的日期的交易
liquidate=$1
#获取年月日
export DATE=`date +%Y%m%d%H%M%S`
#数据库信息
#自增
six=0
;连接数据库 -c "\copy (需要逻辑sql语句) to ${data_dir}/dcep_b2c_payment_${DATE}.txt delimiter '|'"
# -e filename 如果filename为目录,则为真
# -f filename 如果filename为常规文件,则为真
# -L filename 如果filename为符号链接,则为真
# -r filename 如果filename为可读,则为真
# -w filename 如果filename为可写,则为真
# -x filename 如果filename可执行,则为真
# -s filename 如果文件长度不为0,则为真
# -h filename 如果文件是软链接,则为真
if [ -f ${data_dir}/dcep_b2c_payment_${DATE}.txt ]; then
echo "-----------执行sql成功---------"
echo "-----------读取文件------------"
echo "${data_dir}/dcep_b2c_payment_${DATE}.txt"
else
echo "-----------执行sql失败---------"
fi
#开始循环里面的数据进行读取 line代表每行的内容
for line in $(cat ${data_dir}/dcep_b2c_payment_${DATE}.txt)
do
#读取数据
one=$(echo $line|awk -F'|' '{print $1}')
two=$(echo $line|awk -F'|' '{print $2}')
three=$(echo $line|awk -F'|' '{print $3}')
four=$(echo $line|awk -F'|' '{print $4}')
five=$(echo $line|awk -F'|' '{print $5}')
#自增
six=$[$six+1];
time=${liquidate}_${six}
echo "----读取输出的内容----"
echo $one,$two,$three,$four,$five,$time
curl "发送的路径" -H "Content-Type:application/json;charset=UTF-8" -X POST -d '{
"city":"'"$one"'",
"country":"'"$two"'",
"debtorwalletid":"'"$three"'",
"creditorwalletid":"'"$four"'",
"amt":"'"$five"'",
"msgid":"'"$time"'",
"TransName":"DCPR"
}'
done
(1): 效果截图
(2): 使用Liunx sed编辑器被称作流编辑器简介:
* (1):sed编辑器被称作流编辑器(stream editor),和普通的交互文本编辑器恰好相反。在交互式文本编辑器中(比如vim),你可以用键盘命令来交互式地插入/删除/替换数据中的文本。流编辑器则会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流。
* (2):它是文本处理中非常有用的工具,能够完美的配合正则表达式使用,处理时,把当前处理的行存储在临时缓冲区,称为模式空间,接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容没有改变。
* (3):sed编辑器可以根据命令来处理数据流中的数据,这些命令要么从命令行中输入,要么存储一个命令文本文件中。sed编辑器会执行下列操作。
* 1.一次从输入中读取一行数据。
* 2。根据所提供的编辑器命令匹配数据。
* 3.按照命令修改流中的数据。
* 4.将新的数据输出到STDOUT。
* (4):sed编辑器要比交互式编辑器快得多,可以快速完成对数据的自动修改。
当我们遇到好几台服务时候,需要修改配置文件,使用sed 替换
sed 技术
sed -i 's/替换前内容/替换后的内容/g' 配置文件
* 例如: sed -i 's/http.client.USER=paytest/http.client.B2CUSER=pay/g' jsch-service.properties.bak
* http.client.USER=paytest 修改为 http.client.USER=pay
* 3.想改路径或者IP时
* sed -i 's#替换前的内容#替换后的内容#g' 配置文件
* 例如:sed -i 's#http.client.IP=127.0.0.1#http.client.IP=20.21.10.151/psbcpay#g' jsch-service.properties.bak
* http.client.IP=20.127.0.0.1 http.client.IP=20.21.10.151/psbcpay
*