- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我的想法是将 json 字符串放入变量 JSON,我有一个命令在 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
如果我在控制台中输入 ./file.sh 文件执行创建一个控制台用户。如果它尝试执行这段代码,我会得到一个错误:Unknown options: "aaaaaaaaaaa","PasswordResetRequired", :, true}, "roberto.viquezzz","Password":
但如果我从命令行执行此代码,例如:
aws iam create-login-profile --cli-input-json "{\"UserName\": \"roberto.viquezzz\",\"Password\": \"aaaaaaaaaaa\",\"PasswordResetRequired\": true}"
一切都很好,也许谁知道出了什么问题?请建议!
最佳答案
在 $JSON 周围加上引号:
aws iam create-login-profile --cli-input-json "$JSON"
赋值过程中的引号会被 shell 消耗掉。您可以通过发出 echo $JSON
来验证这一点。通过添加引号,您将确保将整个字符串作为单个参数传递给命令“aws”。
关于json - Bash JSON 字符串到变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46687810/
我是一名优秀的程序员,十分优秀!