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

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 valori dei parametri più comuni è una stringa. JSON Si tratta di un processo complesso in quanto include spazi e virgolette doppie " " attorno al nome e al valore di ogni elemento nella JSON struttura. Il modo in cui immettete i parametri JSON -formatted nella riga di comando varia a seconda del sistema operativo.

Per un JSON utilizzo più avanzato nella riga di comando, prendi in considerazione l'utilizzo di un JSON processore da riga di comando, ad esempio per creare jq stringhe. JSON Per maggiori 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 JSON dei dati, come nell'esempio seguente. Non è necessario evitare le virgolette doppie incorporate nella JSON stringa, poiché vengono trattate letteralmente. Poiché 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 JSON dati 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 inserendo un segno di spunta ` all'interno della JSON struttura, 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.

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 citazione 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 JSON dei dati, usa Blobs per passare i dati direttamente a. JSON AWS CLI Per ulteriori informazioni su Blobs, vedere. Blob

Windows command prompt

Il prompt dei comandi di Windows richiede virgolette doppie " " per racchiudere la struttura dei dati. JSON Inoltre, per evitare che il processore di comandi interpreti erroneamente le virgolette doppie incorporate " in JSON \ JSON

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.