

**Esta documentação é somente para a versão 1 da AWS CLI.**

Anunciamos o próximo fim do suporte para a AWS CLI versão 1. É recomendável migrar para a AWS CLI versão 2. Para saber as datas e receber detalhes e informações adicionais sobre como migrar, consulte o [anúncio](https://aws.amazon.com/blogs/developer/cli-v1-maintenance-mode-announcement/). Para obter a documentação relacionada à AWS CLI versão 2, consulte o [Guia do usuário da versão 2](https://docs.aws.amazon.com/cli/latest/userguide/).

# Usar aspas e literais com strings na AWS CLI
<a name="cli-usage-parameters-quoting-strings"></a>

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](#cli-usage-parameters-quoting-strings-around)
+ [Uso de aspas dentro de strings](#cli-usage-parameters-quoting-strings-containing)

## Uso de aspas em torno de strings que contêm espaços em branco
<a name="cli-usage-parameters-quoting-strings-around"></a>

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](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_quoting_rules?view=powershell-7) 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
<a name="cli-usage-parameters-quoting-strings-containing"></a>

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](http://stedolan.github.io/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 **simples**utilizando 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 **duplas**utilizando 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](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_quoting_rules?view=powershell-7) 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](https://devblogs.microsoft.com/oldnewthing/20100917-00/?p=12833) no *Blog de desenvolvedores da Microsoft*, [Todos delimitam argumentos de linha de comando da maneira errada](https://docs.microsoft.com/en-us/archive/blogs/twistylittlepassagesallalike/everyone-quotes-command-line-arguments-the-wrong-way) no *Blog de documentação da Microsoft* e [Função CommandLineToArGVW](https://docs.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-commandlinetoargvw#remarks) 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*`\$1* 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](cli-usage-parameters-types.md#parameter-type-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.

------