linux下用shell来 CURL POST JSON 数据遇到的问题

本文讲述了在Linux环境下,通过shell脚本使用curl发送POST请求时遇到的问题,特别是涉及到变量JSON数据的处理。核心问题在于,直接执行curl命令或使用命令替换无法成功,需要借助eval命令来执行拼接后的curl命令。解决方案中提到了通过sed命令处理JSON字符串,并建议使用在线工具检查JSON格式的正确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

linux下用shell来  CURL POST JSON 数据遇到的问题
Trouble with bash shell script, attempting to POST variable JSON data using cURL
主要问题:Linux下在shell中用curl post json数据时,不能直接执行命令,必须用eval执行拼装好的curl命令,单独执行不行

     以下为部分shell代码,其中sedtest为拼接好的json字符串,exestring为拼接好的curl json命令。#号注释掉的直接在shell中用curl命令和用``执行拼接好的命令都不行,必须用eval执行拼接好的命令。
sedtest=`echo $sedtest | sed 's/$/&}/g'`
echo sedtest $sedtest
exestring="curl -l -H \"Content-type: application/json;charset=UTF-8\" -H \"X-Forwarded-For: 20.20.20.20\" -X POST -d '$sedtest' http://192.168.3.202/vbox_interface_status_report"
#echo $exestring
#curl -l -H "Content-type: application/json;charset=UTF-8" -H "X-Forwarded-For: 20.20.20.20" -X POST -d '$sedtest' http://192.168.3.202/vbox_interface_status_report
#`$exestring`
eval $exestring

注意,自己拼接的json格式字符串,如果不确定格式是否正确,可以借助在线检查工具进行格式化检查。
www.bejson.com
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值