linux shell变量到aws命令错误

时间:2018-05-22 09:31:11

标签: linux shell amazon-web-services command-line

我花了很长时间试图解决这个谜语。

我有一个名为API_ID的shell变量,我使用jq

从json解析
ludo$ echo $API_ID
> "ucjj72orp1"

为什么当我像这样复制粘贴时它可以正常工作:

aws apigateway get-resources --rest-api-id "ucjj72orp1"

并且像这样我收到错误:

aws apigateway get-resources --rest-api-id $API_ID
An error occurred (NotFoundException) when calling the GetResources operation: Invalid REST API identifier specified 420257254224:"ucjj72orp1"

1 个答案:

答案 0 :(得分:1)

您需要在-r命令中使用jq选项。这样就可以在没有双引号的情况下获取原始数据。

如果设置myvar=$(jq '...'),变量将设置为包含周围双引号的shell字符串。

如果在内联shell命令中复制/粘贴字符串,shell会将双引号解释为字符串分隔符,因此它可以正常工作。