Utilizzo di virgolette e valori letterali con stringhe in AWS CLI - AWS Command Line Interface

Questa documentazione è valida AWS CLI solo per la versione 1.

Abbiamo annunciato l' end-of-supportimminente rilascio della AWS CLI versione 1. Ti consigliamo di migrare alla AWS CLI versione 2. Per date, dettagli aggiuntivi e informazioni su come effettuare la migrazione, consulta l'annuncio. Per la documentazione relativa alla versione 2 di AWS CLI, consulta la Guida per l'utente della versione 2.

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

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

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 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

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 sujq, consulta il repository 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 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 utilizzatiCommandLineToArgvW, è 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 in Microsoft DevBlogs, Everyone cita gli argomenti della riga di comando nel modo sbagliato nel Microsoft Docs Blog e la funzione CommandLineToArgvW in 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 `\ 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.

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.