0
这是一个小命令行脚本,用于在http服务器中发布json主体。我发现难以将第一个命令行参数$ 1传递给json主体。Bash脚本,不能替代命令行变量
#!/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来做到这一点?
是的,需要的一切。这实际上是一个数字,例如12345,所以我需要所有字符 – cateof
一般来说,你不应该使用字符串插值来创建JSON,因为'$ 1'的内容可能需要正确地转义以产生有效的JSON。像'$(jq --arg val“$ 1”'{game:16,id:$ val}')'是更合适的。 – chepner