JSON 形式の引数のリストを必要とする Web サービスがあります。たとえば、処理できる JSON は次のようになります。
{
"args": ["basharg1", "bash arg 2 with spaces", "lastargs"]
}
引数を bash スクリプトに簡単に変換して、この種の JSON を保持する文字列を作成するにはどうすればよいですか? その文字列はcurl
、Web サービスに渡すために使用されます。
JSON 形式の引数のリストを必要とする Web サービスがあります。たとえば、処理できる JSON は次のようになります。
{
"args": ["basharg1", "bash arg 2 with spaces", "lastargs"]
}
引数を bash スクリプトに簡単に変換して、この種の JSON を保持する文字列を作成するにはどうすればよいですか? その文字列はcurl
、Web サービスに渡すために使用されます。
Mac では、glenn_jackman のアプローチを使用する短いバージョンは次のとおりです。
ARGS=""; for arg; do ARGS=$(printf '%s"%s"' "$ARGS", "$arg"); done;
ARGS=${ARGS#,}
JSON="{ \"args\": [$ARGS] }"
echo "$JSON"
これが私がそれをやった方法です。遠慮なく改善を提案してください。
#!/bin/bash
ARGS="\"$1\""
shift
while (( "$#" )); do
ARGS="$ARGS, \"$1\""
shift
done
ARGUMENTS_JSON="{ \"args\": [$ARGS] }"
echo "$ARGUMENTS_JSON"