我需要将这些bash变量读入JSON字符串,而我对bash并不熟悉。任何帮助表示赞赏。
#!/bin/sh BUCKET_NAME=testbucket OBJECT_NAME=testworkflow-2.0.1.jar TARGET_LOCATION=/opt/test/testworkflow-2.0.1.jar JSON_STRING='{"bucketname":"$BUCKET_NAME"","objectname":"$OBJECT_NAME","targetlocation":"$TARGET_LOCATION"}' echo $JSON_STRING
jq如果您不提前知道变量的内容是否正确转义以包含在JSON中,则最好使用类似生成JSON 的程序。否则,您将因麻烦而最终使用无效的JSON。
jq
BUCKET_NAME=testbucket OBJECT_NAME=testworkflow-2.0.1.jar TARGET_LOCATION=/opt/test/testworkflow-2.0.1.jar JSON_STRING=$( jq -n \ --arg bn "$BUCKET_NAME" \ --arg on "$OBJECT_NAME" \ --arg tl "$TARGET_LOCATION" \ '{bucketname: $bn, objectname: $on, targetlocation: $tl}' )