把JSONstring变成variables

我的想法是将jsonstring放入variablesJSON中,我有一个命令,它将控制台login到AWS IAM中的用户,命令是: aws iam create-login-profile --cli-input-json file://create-login-profile.json

在create-login-profile.json中是json的以下内容:

 { "UserName": "roberto.viquezzz", "Password": "aaaaaaaaaaa", "PasswordResetRequired": true} 

我尝试编写包含json var“JSON”的bash脚本,如下面的代码所示:

 JSON="{\"UserName\": \"roberto.viquezzz\",\"Password\": \"aaaaaaaaaaa\",\"PasswordResetRequired\" : true}" aws iam create-login-profile --cli-input-json $JSON 

如果我input控制台./file.sh文件执行创build一个控制台用户。 如果它尝试执行此代码,我得到一个错误: Unknown options: "aaaaaaaaaaa","PasswordResetRequired", :, true}, "roberto.viquezzz","Password":

但如果我从命令行执行此代码,如:

 aws iam create-login-profile --cli-input-json "{\"UserName\": \"roberto.viquezzz\",\"Password\": \"aaaaaaaaaaa\",\"PasswordResetRequired\": true}" 

一切都会好的,也许谁知道什么是错的? 请build议!

把引号放在$ JSON的周围:

 aws iam create-login-profile --cli-input-json "$JSON" 

分配过程中出现的引号被shell使用。 您可以通过发出echo $JSON来验证。 通过添加引号,您将确保整个字符串作为单个参数传递给命令“aws”。