这是一个小命令行脚本,用于在http服务器中发布json正文。我发现很难将第一个命令行参数$ 1传递给json体。
#!/bin/bash
curl -X POST -d '{ "game": 16, "id": $(($1)) }' http://localhost:10000/
命令不会失败,但http正文包含
{"游戏":16," id":$(($ 1))}
我想运行脚本./script 123并发送json正文
{ "game": 16, "id": 3 }
如何使用bash执行此操作?
答案 0 :(得分:2)
您也可以使用单引号,这样您就不必像这样使用双引号:
#!/bin/bash
curl -X POST -d '{ "game": 16, "id": '$1' }' http://localhost:10000/
答案 1 :(得分:1)
使用单引号将打印文字字符。您需要使用双引号进行字符串插值。尝试:
curl -X POST -d "{ \"game\": 16, \"id\": $1 }" http://localhost:10000/