переменная оболочки linux для ошибки команды aws - PullRequest
0 голосов
/ 22 мая 2018

Я потратил смущающе много времени, пытаясь разгадать эту загадку.

У меня есть переменная оболочки с именем API_ID, которую я проанализировал с помощью json, используя jq

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 голосов
/ 22 мая 2018

Вам необходимо использовать опцию -r в вашей команде jq.Это позволяет получать необработанные данные без двойных кавычек.

Если вы установите myvar=$(jq '...'), переменная будет установлена ​​в строку оболочки, включая окружающие двойные кавычки.

Если вы копируете / вставляете строку в команду встроенной оболочки, оболочка интерпретирует двойную кавычку как разделитель строк, и поэтому она работает.

...