2

我有一个 Web 服务,它需要 JSON 格式的参数列表。例如,它可以处理的 JSON 是这样的:

{
  "args": ["basharg1", "bash arg 2 with spaces", "lastargs"]
}

如何轻松地将参数转换为 bash 脚本以构建包含这种 JSON 的字符串?然后将使用该字符串将curl其传递给 Web 服务。

4

2 回答 2

2

这就是我最终如何做到的。随时提出改进建议。

#!/bin/bash

ARGS="\"$1\""
shift

while (( "$#" )); do
    ARGS="$ARGS, \"$1\""
    shift
done

ARGUMENTS_JSON="{ \"args\": [$ARGS] }"

echo "$ARGUMENTS_JSON"
于 2012-04-13T10:08:48.760 回答
2

在 Mac 上,使用 glenn_jackman 方法的较短版本是:

ARGS=""; for arg; do ARGS=$(printf '%s"%s"' "$ARGS", "$arg"); done;
ARGS=${ARGS#,}
JSON="{ \"args\": [$ARGS] }"
echo "$JSON"
于 2014-09-16T15:25:29.333 回答