Aspas com strings na AWS CLI - AWS Command Line Interface

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Aspas com strings na AWS CLI

Há duas formas principais de usar aspas simples e duplas na AWS CLI.

Uso de aspas em torno de strings que contêm espaços em branco

Os nomes dos parâmetros e valores são separados por espaços na linha de comando. Se um valor de string contiver um espaço incorporado, você deve fechar a string inteira com aspas para evitar que a AWS CLI interprete mal o espaço como um divisor entre o valor e o próximo nome de parâmetro. O tipo de aspas depende do sistema operacional em que você executa a AWS CLI.

Linux and macOS

Uso de aspas simples ' '

$ aws ec2 create-key-pair --key-name 'my key pair'

Para obter mais informações sobre como usar aspas, consulte a documentação do usuário para o seu shell preferido.

PowerShell

Aspas simples (recomendado)

As aspas simples ' ' são chamadas de strings verbatim. A string é passada ao comando exatamente como você a digita, o que significa que as variáveis do PowerShell não serão passadas.

PS C:\> aws ec2 create-key-pair --key-name 'my key pair'

Aspas duplas

As aspas duplas " " são chamadas de string expandable. As variáveis podem ser passadas em strings expansíveis.

PS C:\> aws ec2 create-key-pair --key-name "my key pair"

Para obter mais informações sobre como usar aspas, consulte Sobre regras de aspas na Documentação do Microsoft PowerShell.

Windows command prompt

Uso de aspas duplas " ".

C:\> aws ec2 create-key-pair --key-name "my key pair"

Opcionalmente, você pode separar o nome de parâmetro do valor com um sinal de igual =, em vez de um espaço. Isso geralmente é necessário apenas se o valor do parâmetro começa com um hífen.

$ aws ec2 delete-key-pair --key-name=-mykey

Uso de aspas dentro de strings

As strings podem conter aspas, e seu shell pode exigir aspas de escape para que funcionem corretamente. Um dos tipos de valor de parâmetro comuns é uma string JSON. Isso é complexo, pois inclui espaços e aspas duplas " " em torno de cada nome de elemento e valor na estrutura JSON. A maneira como insere os parâmetros formatados pelo JSON na linha de comando difere dependendo de seu sistema operacional.

Para uso mais avançado de JSON na linha de comando, considere usar um processador JSON de linha de comando, como jq, para criar strings JSON. Para obter mais informações sobre o jq, consulte o repositório do jq no GitHub.

Linux and macOS

Para que o Linux e o macOS interpretem strings literalmente, use aspas simples ' ' para delimitar estrutura de dados JSON, como no exemplo a seguir. Você não precisa adicionar sequências de escape para as aspas duplas incorporadas na string JSON, pois elas são tratadas literalmente. Como o JSON é delimitado por aspas simples, quaisquer aspas simples na string precisarão utilizar sequências de escape. Isso geralmente é feito usando-se uma barra invertida antes da aspas simples \'.

$ aws ec2 run-instances \ --image-id ami-12345678 \ --block-device-mappings '[{"DeviceName":"/dev/sdb","Ebs":{"VolumeSize":20,"DeleteOnTermination":false,"VolumeType":"standard"}}]'

Para obter mais informações sobre como usar aspas, consulte a documentação do usuário para o seu shell preferido.

PowerShell

Use aspas simples ' ' ou aspas duplas" ".

Aspas simples (recomendado)

As aspas simples ' ' são chamadas de strings verbatim. A string é passada ao comando exatamente como você a digita, o que significa que as variáveis do PowerShell não serão passadas.

Como as estruturas de dados JSON incluem aspas duplas, sugerimos utilizar aspas simples ' 'para delimitá-las. Se você usar aspas simples, não será necessário usar uma sequência de escape para as aspas duplas incorporadas na string JSON. No entanto, será necessário usar a sequência de escape para cada uma das aspas simplesutilizando um apóstrofe ` dentro da estrutura JSON.

PS C:\> aws ec2 run-instances ` --image-id ami-12345678 ` --block-device-mappings '[{"DeviceName":"/dev/sdb","Ebs":{"VolumeSize":20,"DeleteOnTermination":false,"VolumeType":"standard"}}]'

Aspas duplas

As aspas duplas " " são chamadas de string expandable. As variáveis podem ser passadas em strings expansíveis.

Se você usar aspas duplas, não será necessário usar uma sequência de escape para as aspas simples incorporadas na string JSON. No entanto, será necessário usar a sequência de escape para cada uma das aspas duplasutilizando um apóstrofe ` dentro da estrutura JSON, conforme mostrado no exemplo a seguir.

PS C:\> aws ec2 run-instances ` --image-id ami-12345678 ` --block-device-mappings "[{`"DeviceName`":`"/dev/sdb`",`"Ebs`":{`"VolumeSize`":20,`"DeleteOnTermination`":false,`"VolumeType`":`"standard`"}}]"

Para obter mais informações sobre como usar aspas, consulte Sobre regras de aspas na Documentação do Microsoft PowerShell.

Atenção

Antes que o PowerShell envie um comando para a AWS CLI, ele determina se seu comando é interpretado usando o PowerShell típico ou regras de aspas da CommandLineToArgvW. Quando o PowerShell usa CommandLineToArgvW no processamento, é necessário escapar dos caracteres com barra invertida \.

Para obter mais informações sobre CommandLineToArgvW no PowerShell, consulte O que há com o estranho tratamento de aspas e barras invertidas por CommandlineToArgVW no Blog de desenvolvedores da Microsoft, Todos delimitam argumentos de linha de comando da maneira errada no Blog de documentação da Microsoft e Função CommandLineToArGVW na Documentação da Microsoft.

Aspas simples

As aspas simples ' ' são chamadas de strings verbatim. A string é passada ao comando exatamente como você a digita, o que significa que as variáveis do PowerShell não serão passadas. Caracteres de escape com barra invertida \.

PS C:\> aws ec2 run-instances ` --image-id ami-12345678 ` --block-device-mappings '[{\"DeviceName\":\"/dev/sdb\",\"Ebs\":{\"VolumeSize\":20,\"DeleteOnTermination\":false,\"VolumeType\":\"standard\"}}]'

Aspas duplas

As aspas duplas " " são chamadas de string expandable. As variáveis podem ser passadas em strings expansíveis. Para strings entre aspas duplas, é necessário escapar duas vezes usando`\ para cada aspa, em vez de usar um único backtick. O backtick escapa da barra invertida e, em seguida, a barra invertida é usada como um caractere de escape para o processo CommandLineToArgvW.

PS C:\> aws ec2 run-instances ` --image-id ami-12345678 ` --block-device-mappings "[{`\"DeviceName`\":`\"/dev/sdb`\",`\"Ebs`\":{`\"VolumeSize`\":20,`\"DeleteOnTermination`\":false,`\"VolumeType`\":`\"standard`\"}}]"

Blobs (recomendados)

Para ignorar as regras de aspas do PowerShell para entrada de dados JSON, use Blobs para passar seus dados JSON diretamente para a AWS CLI. Para obter mais informações sobre o Blobs, consulte Blob.

Windows command prompt

O prompt de comando do Windows exige aspas duplas " " para delimitar a estrutura de dados JSON. Além disso, para evitar que o processador de comando interprete mal as aspas duplas incorporadas no JSON, você também deve usar um caractere de escape (preceder com um caractere de barra invertida \) cada uma das aspas duplas " dentro da própria estrutura de dados JSON, como no exemplo a seguir.

C:\> aws ec2 run-instances ^ --image-id ami-12345678 ^ --block-device-mappings "[{\"DeviceName\":\"/dev/sdb\",\"Ebs\":{\"VolumeSize\":20,\"DeleteOnTermination\":false,\"VolumeType\":\"standard\"}}]"

Somente as aspas duplas mais externas não são de escape.