Virgolette con stringhe in AWS CLI - AWS Command Line Interface

Questa documentazione è valida AWS CLI solo per la versione 1. 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à.

Virgolette con stringhe in AWS CLI

Esistono principalmente due modi in cui vengono utilizzate le virgolette singole e doppie in. 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 stringa contiene uno spazio incorporato, è necessario circondare l'intera stringa con virgolette per evitare che l'AWS CLI interpreti erroneamente lo spazio come divisore tra il valore e il nome del parametro successivo. Il tipo di virgolette utilizzato dipende dal sistema operativo su cui è in esecuzione. AWS CLI

Linux and macOS

Usa virgolette singole ' '

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

Per ulteriori informazioni sull'uso delle virgolette, consultate la documentazione per l'utente della vostra shell preferita.

PowerShell

Citazioni singole (consigliate)

Le virgolette singole ' ' sono chiamate verbatim stringhe. 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 expandable stringhe. Le variabili possono essere passate in 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

Usa le 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 = anziché 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 per farle funzionare 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 JSON più avanzato nella riga di comando, prendi in considerazione l'utilizzo di un processore JSON a riga di comando, ad esempiojq, 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 evitare 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'uso delle virgolette, consultate la documentazione per l'utente della shell preferita.

PowerShell

Usa virgolette singole ' ' o doppie. " "

Virgolette singole (consigliate)

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

Poiché le strutture dati JSON includono virgolette doppie, suggeriamo di racchiuderle tra ' ' virgolette singole. Se si utilizzano virgolette singole, non è necessario evitare le virgolette doppie incorporate nella stringa JSON. Tuttavia, è necessario evitare 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"}}]'

Citazioni doppie

Le virgolette doppie " " sono chiamate expandable stringhe. Le variabili possono essere passate in stringhe espandibili.

Se si utilizzano le virgolette doppie, non è necessario evitare le virgolette singole incorporate nella stringa JSON. Tuttavia, è necessario evitare 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 aAWS 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.

Citazioni singole

Le virgolette singole ' ' sono chiamate verbatim stringhe. La stringa viene passata al comando esattamente mentre viene digitata, il che significa che PowerShell le variabili non verranno trasmesse. Fuggi dai personaggi 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\"}}]'

Citazioni doppie

Le virgolette doppie " " sono chiamate expandable stringhe. Le variabili possono essere passate sotto forma di stringheexpandable. Per le stringhe tra virgolette devi scappare due volte usando `\ per ogni virgoletta invece di usare solo un backtick. Il backtick sfugge alla barra rovesciata, 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 (consigliato)

Per aggirare le regole PowerShell di citazione per l'immissione di dati JSON, usa Blobs per passare i dati JSON direttamente a. AWS CLI Per ulteriori informazioni su Blobs, consulta. Blob

Windows command prompt

Il prompt dei comandi di Windows richiede virgolette doppie " " per racchiudere la struttura di dati JSON. Inoltre, per evitare che il processore di comandi interpreti erroneamente le virgolette doppie incorporate nel codice JSON, è inoltre necessario digitare l'escape (far precedere da una barra rovesciata) ogni virgoletta \ doppia " 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.