【Linux】Shell脚本中使用变量替换Curl指令中的参数

一、shell中使用变量替换curl中的部分参数

需要注意的是使用变量替换shell脚本curl命令中的部分参数时,单引号中的变量也需要使用单引号括起来,使用双引号参数解析会不正确。这个问题折腾了我很久,切记!!!

下面的例子展示了如何使用变量 Bucket_ID 替换 curl 命令中的参数,这个例子完成的工作内容是:

  • GARDEN_ID.txt 文件中通过 awk 命令获取指定的变量 Bucket_ID
  • 之后在 curl 指令中使用 Bucket_ID 变量替换部分参数;
  • curl 获取到的返回结果进行格式化处理,输出到目标文件中。

Shell脚本中循环的使用请参考,Shell脚本中如何使用“循环”遍历“数组”中的元素

#!bin/bash
GARDEN_ID=123456
DIR="../account/tmp"

if [ ! -f "${GARDEN_ID}.txt"]
then
    echo "There is no ${GARDEN_ID}.txt !"
fi

# Get Bucket_ID from xx.txt file
for Bucket_ID in `awk -F' ' '{print $1}' ${GARDEN_ID}.txt`
do
    # Get Target Variable Realtime_size
    # 暂时没找到方法将curl获取的信息,通过管道命令直接传递给awk进行文本处理
    # 所以先将curl获取的数据输出到文本文档中,然后从文本文档获取数据进行处理 
    echo `curl http://127.0.0.1:/xx/yy/mm/nn.cgi -d 'rtx=xx&unit=B&mfactor=5&area=xx&query_data=[{"business_id":"10022853/'${Bucket_ID}'","query_date":"20200522","target":"storage"}]'` > ${DIR}/${Bucket_ID}.txt
Realtime_size=`awk -F',' '{print $5}' ${DIR}/${Bucket_ID}.txt`
    rm ${DIR}/${Bucket_ID}.txt

    # Output File_size and Realtime_size into xx.txt file
    echo "${Bucket_ID} ${Realtime_size}" >> ${GARDEN_ID}_filesize.txt

done
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值