2

JSON 形式の引数のリストを必要とする Web サービスがあります。たとえば、処理できる JSON は次のようになります。

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

引数を bash スクリプトに簡単に変換して、この種の JSON を保持する文字列を作成するにはどうすればよいですか? その文字列はcurl、Web サービスに渡すために使用されます。

4

2 に答える 2

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 に答える
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 に答える