

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Utilizzo di virgolette e valori letterali con stringhe in AWS CLI
<a name="cli-usage-parameters-quoting-strings"></a>

Esistono principalmente due modi in cui vengono utilizzate le virgolette singole e doppie nella AWS CLI.
+ [Utilizzo delle virgolette attorno a stringhe che contengono spazi bianchi](#cli-usage-parameters-quoting-strings-around)
+ [Utilizzo delle virgolette all’interno delle stringhe](#cli-usage-parameters-quoting-strings-containing)

## Utilizzo delle virgolette attorno a stringhe che contengono spazi bianchi
<a name="cli-usage-parameters-quoting-strings-around"></a>

I nomi dei parametri e i relativi valori sono separati da spazi sulla riga di comando. Se un valore di stringa contiene uno spazio incorporato, è necessario racchiudere l'intera stringa tra virgolette per evitare che lo spazio venga interpretato erroneamente come divisore tra il valore e il nome del parametro successivo. AWS CLI Il tipo di virgolette utilizzato dipende dal sistema operativo su cui è in esecuzione. AWS CLI 

------
#### [ Linux and macOS ]

Utilizzo di virgolette singole `' '` 

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

Per ulteriori informazioni sull’utilizzo delle virgolette, consulta la documentazione per l’utente della shell che preferisci.

------
#### [ PowerShell ]

**Virgolette singole (scelta consigliata)**

Le virgolette singole `' '` sono chiamate stringhe `verbatim`. La stringa viene passata al comando esattamente mentre viene digitata, il che significa che PowerShell le variabili non verranno trasmesse.

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

**Virgolette doppie**

Le virgolette doppie `" "` sono chiamate stringhe `expandable`. Le variabili possono essere trasmesse nelle stringhe espandibili.

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

Per ulteriori informazioni sull'utilizzo delle virgolette, vedere [Informazioni sulle regole di quotazione](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_quoting_rules?view=powershell-7) in *Microsoft PowerShell Docs*.

------
#### [ Windows command prompt ]

Utilizzo delle virgolette doppie `" "`.

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

------

Facoltativamente, è possibile separare il nome del parametro dal valore con un segno di uguale (`=`) invece di uno spazio. In genere è necessario solo se il valore del parametro inizia con un trattino.

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

## Utilizzo delle virgolette all’interno delle stringhe
<a name="cli-usage-parameters-quoting-strings-containing"></a>

Le stringhe potrebbero contenere virgolette e la shell potrebbe richiedere le virgolette di escape perché funzionino correttamente. Uno dei tipi di valore di parametro comuni è una stringa JSON. Questa operazione è complessa poiché include spazi e virgolette doppie `" "` attorno al nome e al valore di ogni elemento nella struttura JSON. Il modo in cui si immettono parametri in formato JSON alla riga di comando varia a seconda del sistema operativo. 

Per un utilizzo più avanzato del codice JSON su una riga di comando, prendi in considerazione l’utilizzo di un processore JSON a riga di comando, ad esempio `jq`, per creare stringhe JSON. Per ulteriori informazioni su`jq`, consulta il repository [jq](http://stedolan.github.io/jq/) su. *GitHub*

------
#### [ Linux and macOS ]

Affinché Linux e macOS interpretino le stringhe, usa letteralmente le virgolette singole `' '` per racchiudere la struttura dei dati JSON, come nell’esempio seguente. Non è necessario utilizzare caratteri di escape per le virgolette doppie incorporate nella stringa JSON, poiché vengono trattate letteralmente. Poiché il codice JSON è racchiuso tra virgolette singole, sarà necessario eliminare tutte le virgolette singole nella stringa, in genere utilizzando una barra rovesciata prima delle virgolette singole `\'`.

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

Per ulteriori informazioni sull’utilizzo delle virgolette, consulta la documentazione per l’utente della shell che preferisci.

------
#### [ PowerShell ]

Utilizzo di virgolette singole `' '` o doppie `" "`.

**Virgolette singole (scelta consigliata)**

Le virgolette singole `' '` sono chiamate stringhe `verbatim`. La stringa viene passata al comando esattamente mentre viene digitata, il che significa che PowerShell le variabili non verranno trasmesse.

Poiché le strutture di dati JSON includono virgolette doppie, suggeriamo di racchiuderle tra virgolette **singole** `' '`. Se si utilizzano virgolette **singole**, non è necessario eseguire l’escape delle virgolette **doppie** incorporate nella stringa JSON. Tuttavia, è necessario eseguire l’escape per ogni **singola** virgoletta inserendo un segno di spunta ``` all’interno della struttura JSON.

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

**Virgolette doppie**

Le virgolette doppie `" "` sono chiamate stringhe `expandable`. Le variabili possono essere trasmesse nelle stringhe espandibili.

Se si utilizzano le virgolette **doppie**, non è necessario eseguire l’escape delle virgolette **singole** incorporate nella stringa JSON. Tuttavia, è necessario eseguire l’escape per ogni **virgoletta doppia** con un segno di spunta ``` all’interno della struttura JSON, come nell’esempio seguente.

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

Per ulteriori informazioni sull'utilizzo delle virgolette, vedere [Informazioni sulle regole di quotazione](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_quoting_rules?view=powershell-7) in *Microsoft PowerShell Docs*.

**avvertimento**  
Prima di PowerShell inviare un comando a AWS CLI, determina se il comando viene interpretato utilizzando regole tipiche PowerShell o di `CommandLineToArgvW` citazione. Quando PowerShell i processi vengono utilizzati`CommandLineToArgvW`, è necessario escludere i caratteri con una barra `\` rovesciata.  
*Per ulteriori informazioni su `CommandLineToArgvW` in PowerShell, vedi [What's up with the strange treatment of virgolette and backslashes di CommandLineToArgv W](https://devblogs.microsoft.com/oldnewthing/20100917-00/?p=12833) in *Microsoft DevBlogs*, [Everyone cita gli argomenti della riga di comando nel modo sbagliato](https://docs.microsoft.com/en-us/archive/blogs/twistylittlepassagesallalike/everyone-quotes-command-line-arguments-the-wrong-way) nel *Microsoft Docs Blog* e la funzione [CommandLineToArgvW in](https://docs.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-commandlinetoargvw#remarks) Microsoft Docs.*  
**Virgolette singole**  
Le virgolette singole `' '` sono chiamate stringhe `verbatim`. La stringa viene passata al comando esattamente mentre viene digitata, il che significa che PowerShell le variabili non verranno trasmesse. Esegui l’escape dei caratteri con una barra rovesciata `\`.  

```
PS C:\> aws ec2 run-instances `
    --image-id ami-12345678 `
    --block-device-mappings '[{\"DeviceName\":\"/dev/sdb\",\"Ebs\":{\"VolumeSize\":20,\"DeleteOnTermination\":false,\"VolumeType\":\"standard\"}}]'
```
**Virgolette doppie**  
Le virgolette doppie `" "` sono chiamate stringhe `expandable`. Le variabili possono essere trasmesse nelle stringhe `expandable`. Per le stringhe con virgolette doppie è necessario uscire due volte utilizzando *`\$1* per ogni virgoletta invece di usare solo un backtick. Il carattere di apice evita la barra rovesciata, e quindi la barra rovesciata viene utilizzata come carattere di escape per il 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 (scelta consigliata)**  
Per aggirare le regole di PowerShell citazione per l'immissione di dati JSON, usa Blobs per passare i dati JSON direttamente a. AWS CLI Per ulteriori informazioni sui Blob, consulta [Blob](cli-usage-parameters-types.md#parameter-type-blob).

------
#### [ Windows command prompt ]

Il prompt dei comandi di Windows richiede le virgolette doppie `" "` per racchiudere la struttura di dati JSON. Inoltre, per impedire al processore di comandi di interpretare erroneamente le virgolette doppie incorporate nel JSON, è necessario anche evitare (inserendo un carattere barra rovesciata `\`) l’uso di virgolette doppie `"` all’interno della struttura dati JSON stessa, come nell’esempio seguente. 

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

Soltanto le virgolette doppie più esterne non richiedono il carattere di escape.

------