【发布时间】:2020-07-24 09:24:58
【问题描述】:
我编写了一个脚本来在本地堆栈上创建 sqs 资源。我想将我从一个 cli 命令获得的值传递给下一个但在一个内联 json 中。以下是有问题的脚本部分。
arn=$(aws --endpoint-url=http://localhost:4576 sqs get-queue-attributes \
--queue-url http://localhost:4576/my_dead_letter_queue_url \
--query 'Attributes.QueueArn' \
--output text)
aws --endpoint-url=http://localhost:4576 sqs create-queue \
--queue-name my_queue \
--attributes \
'{"RedrivePolicy":"{\"deadLetterTargetArn\":\"$arn\", \"maxReceiveCount\":\"5\"}"}'
所以我试图传递那个“arn”变量,但是 cli 将它作为一个字符串并试图找到一个 url 为“$arn”的 sqs 并且失败了。我也尝试删除报价。在这种情况下,错误是格式错误的字符串。
如果我在那里使用 arn 值作为字符串,而不是 arn 变量,它就可以工作。
如果可能的话,谁能告诉我如何在该内联 json 中传递该变量?
感谢您的阅读:)
阴影
【问题讨论】:
-
这与另一个问题类似,在此处回答:stackoverflow.com/a/36778045/3121039 尝试使用“此处文档”的建议。 (您也可以直接回显字符串以查看
$arn在用单引号括起来时不会扩展。) -
我会试试的,谢谢。
标签: json bash aws-cli amazon-sqs localstack