Anführungszeichen und Literale mit Zeichenketten in AWS CLI - AWS Command Line Interface

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Anführungszeichen und Literale mit Zeichenketten in AWS CLI

Es gibt generell zwei Möglichkeiten, wie einfache und doppelte Anführungszeichen in der AWS CLI verwendet werden.

Verwenden von Anführungszeichen um Zeichenfolgen, die Leerzeichen enthalten

Parameternamen und ihre Werte werden in der Befehlszeile durch Leerzeichen getrennt. Wenn ein Zeichenkettenwert ein eingebettetes Leerzeichen enthält, müssen Sie die gesamte Zeichenfolge in Anführungszeichen setzen, um zu verhindern, dass das AWS CLI Leerzeichen als Trennzeichen zwischen dem Wert und dem nächsten Parameternamen falsch interpretiert wird. Welche Art von Anführungszeichen Sie verwenden, hängt vom Betriebssystem ab, auf dem Sie das Programm ausführen. AWS CLI

Linux and macOS

Verwenden Sie einfache Anführungszeichen ' '

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

Weitere Informationen zur Verwendung von Anführungszeichen finden Sie in der Benutzerdokumentation für Ihre bevorzugte Shell.

PowerShell

Einfache Anführungszeichen (empfohlen)

Einfache Anführungszeichen ' ' werden als verbatim-Zeichenfolge bezeichnet. Die Zeichenfolge wird genau so an den Befehl übergeben, wie Sie sie eingeben, was bedeutet, dass PowerShell Variablen nicht weitergegeben werden.

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

Doppelte Anführungszeichen

Doppelte Anführungszeichen " " werden als expandable-Zeichenfolge bezeichnet. Variablen können in erweiterbaren Zeichenfolgen übergeben werden.

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

Weitere Informationen zur Verwendung von Anführungszeichen finden Sie unter About Rules in den Microsoft PowerShell Docs.

Windows command prompt

Verwenden Sie doppelte Anführungszeichen " ".

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

Sie können optional den Parameternamen vom Wert durch ein Gleichheitszeichen = statt eines Leerzeichens trennen. Dies ist in der Regel nur erforderlich, wenn der Wert des Parameters mit einem Bindestrich beginnt.

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

Verwenden von Anführungszeichen in Zeichenfolgen

Zeichenfolgen können Anführungszeichen enthalten und Ihre Shell erfordert möglicherweise Escape-Anführungszeichen, damit sie ordnungsgemäß funktionieren. Einer der häufigsten Typen von Parameterwerten ist eine JSON Zeichenfolge. Dies ist komplex, da jeder Elementname und jeder Wert in " " der JSON Struktur Leerzeichen und doppelte Anführungszeichen enthält. Die Art und Weise, wie Sie Parameter JSON im -Format in der Befehlszeile eingeben, ist je nach Betriebssystem unterschiedlich.

Für eine fortgeschrittenere JSON Verwendung in der Befehlszeile sollten Sie die Verwendung eines JSON Befehlszeilenprozessors in Betracht ziehenjq, z. B. um Zeichenketten zu erstellenJSON. Weitere Informationen dazu jq finden Sie im jq-Repository unter GitHub.

Linux and macOS

Damit Linux und macOS Zeichenketten wörtlich interpretieren können, verwenden Sie einfache Anführungszeichen, ' ' um die JSON Datenstruktur einzuschließen, wie im folgenden Beispiel. In der JSON Zeichenfolge eingebettete doppelte Anführungszeichen müssen Sie nicht maskieren, da sie wortwörtlich behandelt werden. Da das in einfache Anführungszeichen eingeschlossen JSON ist, müssen alle einfachen Anführungszeichen in der Zeichenfolge maskiert werden. In der Regel wird dazu ein umgekehrter Schrägstrich vor dem einfachen Anführungszeichen verwendet. \'

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

Weitere Informationen zur Verwendung von Anführungszeichen finden Sie in der Benutzerdokumentation für Ihre bevorzugte Shell.

PowerShell

Verwenden Sie einfache Anführungszeichen ' ' oder doppelte Anführungszeichen " ".

Einfache Anführungszeichen (empfohlen)

Einfache Anführungszeichen ' ' werden als verbatim-Zeichenfolge bezeichnet. Die Zeichenfolge wird genau so an den Befehl übergeben, wie Sie sie eingeben, was bedeutet, dass PowerShell Variablen nicht weitergeleitet werden.

Da JSON Datenstrukturen doppelte Anführungszeichen enthalten, empfehlen wir einfache Anführungszeichen' ', um sie einzuschließen. Wenn Sie einfache Anführungszeichen verwenden, müssen Sie in der JSON Zeichenfolge eingebettete doppelte Anführungszeichen nicht maskieren. Sie müssen jedoch jedes einzelne Anführungszeichen ` innerhalb der JSON Struktur mit einem Backtick maskieren.

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

Doppelte Anführungszeichen

Doppelte Anführungszeichen " " werden als expandable-Zeichenfolgen bezeichnet. Variablen können in erweiterbaren Zeichenfolgen übergeben werden.

Wenn Sie doppelte Anführungszeichen verwenden, müssen Sie die in der JSON Zeichenfolge eingebetteten einfachen Anführungszeichen nicht maskieren. Sie müssen jedoch jedes doppelte Anführungszeichen mit einem Backtick ` innerhalb der JSON Struktur maskieren, wie im folgenden Beispiel.

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

Weitere Informationen zur Verwendung von Anführungszeichen finden Sie unter About Rules in den Microsoft PowerShell Docs.

Warnung

Before PowerShell sendet einen Befehl an die AWS CLI und bestimmt, ob Ihr Befehl anhand typischer Regeln PowerShell oder mit CommandLineToArgvW Anführungszeichen interpretiert wird. Wenn PowerShell Prozesse verwendenCommandLineToArgvW, müssen Sie Zeichen mit einem \ umgekehrten Schrägstrich maskieren.

Weitere Informationen dazu finden Sie unter Was ist mit der seltsamen Behandlung von Anführungszeichen und Backslashes durch CommandLineToArgv W in Microsoft DevBlogs, Jeder zitiert Befehlszeilenargumente falsch im Microsoft Docs-Blog und CommandLineToArgvW-Funktion in den Microsoft Docs. CommandLineToArgvW PowerShell

Einfache Anführungszeichen

Einfache Anführungszeichen ' ' werden als verbatim-Zeichenfolge bezeichnet. Die Zeichenfolge wird genau so an den Befehl übergeben, wie Sie sie eingeben, was bedeutet, dass PowerShell Variablen nicht weitergeleitet werden. Verwenden Sie einen Backslash \ als Escape-Zeichen.

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

Doppelte Anführungszeichen

Doppelte Anführungszeichen " " werden als expandable-Zeichenfolgen bezeichnet. Variablen können in expandable-Zeichenfolgen übergeben werden. Bei Zeichenketten in doppelten Anführungszeichen müssen Sie zweimal die Escape-Methode verwenden `\ für jedes Anführungszeichen, anstatt nur einen Backtick zu verwenden. Der Backtick maskiert den Backslash, und der Backslash wird als Escape-Zeichen für den CommandLineToArgvW-Prozess verwendet.

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

Blobs (empfohlen)

Um die PowerShell Anführungsregeln für die JSON Dateneingabe zu umgehen, verwenden Sie Blobs, um Ihre JSON Daten direkt an die zu übergeben. AWS CLI Weitere Informationen zu Blobs finden Sie unter Blob.

Windows command prompt

Die Windows-Eingabeaufforderung erfordert doppelte Anführungszeichen" ", um die Datenstruktur einzuschließen. JSON Um zu verhindern, dass der Befehlsprozessor die in der eingebetteten doppelten Anführungszeichen falsch interpretiertJSON, müssen Sie außerdem jedes doppelte Anführungszeichen " innerhalb der JSON Datenstruktur selbst maskieren (mit einem umgekehrten \ Schrägstrich voranstellen), wie im folgenden Beispiel.

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

Nur die äußersten doppelten Anführungszeichen benötigen kein Escape-Zeichen.