Verwenden von Anführungszeichen und Literalen 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.

Verwenden von Anführungszeichen und Literalen 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 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 finden Sie im jq jq-Repository unter. 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, 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 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 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 Escape-Zeichen verwenden, indem Sie `\ für jedes Anführungszeichen verwenden, 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 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.