

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
<a name="cli-usage-parameters-quoting-strings"></a>

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](#cli-usage-parameters-quoting-strings-around)
+ [Verwenden von Anführungszeichen in Zeichenfolgen](#cli-usage-parameters-quoting-strings-containing)

## Verwenden von Anführungszeichen um Zeichenfolgen, die Leerzeichen enthalten
<a name="cli-usage-parameters-quoting-strings-around"></a>

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](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_quoting_rules?view=powershell-7) 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
<a name="cli-usage-parameters-quoting-strings-containing"></a>

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](http://stedolan.github.io/jq/) 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](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_quoting_rules?view=powershell-7) 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 verwenden`CommandLineToArgvW`, 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](https://devblogs.microsoft.com/oldnewthing/20100917-00/?p=12833) in *Microsoft DevBlogs*, [Jeder zitiert Befehlszeilenargumente falsch im](https://docs.microsoft.com/en-us/archive/blogs/twistylittlepassagesallalike/everyone-quotes-command-line-arguments-the-wrong-way) *Microsoft Docs-Blog* und [CommandLineToArgvW-Funktion](https://docs.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-commandlinetoargvw#remarks) 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 *`\$1* 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](cli-usage-parameters-types.md#parameter-type-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.

------