我有一个 Web 服务,它需要 JSON 格式的参数列表。例如,它可以处理的 JSON 是这样的:
{
"args": ["basharg1", "bash arg 2 with spaces", "lastargs"]
}
如何轻松地将参数转换为 bash 脚本以构建包含这种 JSON 的字符串?然后将使用该字符串将curl
其传递给 Web 服务。
我有一个 Web 服务,它需要 JSON 格式的参数列表。例如,它可以处理的 JSON 是这样的:
{
"args": ["basharg1", "bash arg 2 with spaces", "lastargs"]
}
如何轻松地将参数转换为 bash 脚本以构建包含这种 JSON 的字符串?然后将使用该字符串将curl
其传递给 Web 服务。
这就是我最终如何做到的。随时提出改进建议。
#!/bin/bash
ARGS="\"$1\""
shift
while (( "$#" )); do
ARGS="$ARGS, \"$1\""
shift
done
ARGUMENTS_JSON="{ \"args\": [$ARGS] }"
echo "$ARGUMENTS_JSON"
在 Mac 上,使用 glenn_jackman 方法的较短版本是:
ARGS=""; for arg; do ARGS=$(printf '%s"%s"' "$ARGS", "$arg"); done;
ARGS=${ARGS#,}
JSON="{ \"args\": [$ARGS] }"
echo "$JSON"