Zeichenfolgen mit Anführungszeichen in der AWS CLI - AWS Command Line Interface

Diese Dokumentation bezieht sich AWS CLI nur auf Version 1 von. Dokumentation zu Version 2 von finden Sie im Benutzerhandbuch für Version 2. AWS CLI

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.

Zeichenfolgen mit Anführungszeichen in der 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 Zeichenfolgenwert ein eingebettetes Leerzeichen enthält, müssen Sie die gesamte Zeichenfolge in Anführungszeichen setzen, um zu verhindern, dass die AWS CLI das Leerzeichen fälschlicherweise als Trennzeichen zwischen dem Wert und dem nächsten Parameternamen interpretiert. Die zu verwendenden Anführungszeichen sind von dem Betriebssystem abhängig, auf dem Sie die AWS CLI ausführen.

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, PowerShell-Variablen werden also nicht durchgelassen.

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 Informationen zu Anführungszeichenregeln in den Microsoft-PowerShell-Dokumenten.

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 allgemeinen Parameterwerttypen ist eine JSON-Zeichenfolge. Dies ist komplex, da es Leerzeichen und doppelte Anführungszeichen " " um jeden Elementnamen und Wert in der JSON-Struktur enthält. Wie Sie JSON-formatierte Parameter an der Befehlszeile eingeben, unterscheidet sich je nach Betriebssystem.

Für eine erweiterte JSON-Nutzung in einer Befehlszeile sollten Sie einen Befehlszeilen-JSON-Prozessor wie jq verwenden, um JSON-Strings zu erstellen. Weitere Informationen zu jq finden Sie im jq-Repository auf GitHub.

Linux and macOS

Damit Linux und macOS Strings buchstäblich interpretieren, verwenden Sie einfache Anführungszeichen ' ', um die JSON-Datenstruktur einzuschließen, wie im folgenden Beispiel. In die JSON-Zeichenfolge eingebettete doppelte Anführungszeichen müssen nicht mit Escape-Zeichen versehen werden, da sie wörtlich behandelt werden. Da die JSON in einfache Anführungszeichen eingeschlossen ist, müssen alle einfachen Anführungszeichen in der Zeichenfolge mit Escapezeichen versehen werden. Dies wird normalerweise mit einem umgekehrten Schrägstrich vor dem einfachen Anführungszeichen \' erreicht.

$ 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, PowerShell-Variablen werden also nicht durchgelassen.

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 die JSON-Zeichenfolge eingebettete doppelte Anführungszeichen nicht mit Escape-Zeichen versehen. Sie müssen jedoch jedes einzelne Anführungszeichen mit einem Backtick ` innerhalb der JSON-Struktur markieren.

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 in die JSON-Zeichenfolge eingebettete einfache Anführungszeichen nicht mit Escape-Zeichen versehen. Sie müssen jedoch jedes doppelte Anführungszeichen mit einem Backtick ` innerhalb der JSON-Struktur markieren, 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 Informationen zu Anführungsregeln in den Microsoft-PowerShell-Dokumenten.

Warnung

Bevor PowerShell einen Befehl an AWS CLI sendet, bestimmt es, ob Ihr Befehl mit typischen PowerShell- oder CommandLineToArgvW-Anführungsregeln interpretiert wird. Wenn PowerShell für die Verarbeitung CommandLineToArgvW verwendet, müssen Sie einen Backslash \ als Escape-Zeichen verwenden.

Weitere Informationen zu CommandLineToArgvW in PowerShell finden Sie unter Was ist mit der seltsamen Behandlung von Anführungszeichen und umgekehrten Schrägstrichen durch CommandLineToArgvW in den Microsoft DevBlogs, Jeder zitiert Befehlszeilenargumente falsch im Microsoft-Docs-Blog und CommandLineToArgvW-Funktion in Microsoft Docs.

Einfache Anführungszeichen

Einfache Anführungszeichen ' ' werden als verbatim-Zeichenfolge bezeichnet. Die Zeichenfolge wird genau so an den Befehl übergeben, wie Sie sie eingeben, PowerShell-Variablen werden also nicht durchgelassen. 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 Zeichenfolgen in doppelten Anführungszeichen muss zweimal `\als Escape-Zeichen für jedes Anführungszeichen verwendet werden, 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 PowerShell-Anführungsregeln für die JSON-Dateneingabe zu umgehen, verwenden Sie Blobs, um Ihre JSON-Daten direkt an die AWS CLI weiterzuleiten. Weitere Informationen zu Blobs finden Sie unter Blob.

Windows command prompt

Die Windows-Eingabeaufforderung verwendet doppelte Anführungszeichen " " vor und nach der JSON-Datenstruktur. Um zu verhindern, dass der Befehlsprozessor die in JSON eingebetteten doppelten Anführungszeichen falsch interpretiert, müssen Sie auch jedes doppelte Anführungszeichen \ innerhalb der JSON-Datenstruktur selbst maskieren (als Escapezeichen einen 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.