Guillemets avec des chaînes dans AWS CLI - AWS Command Line Interface

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Guillemets avec des chaînes dans AWS CLI

Il existe principalement deux manières d'utiliser des guillemets simples et doubles dans leAWS CLI.

Utilisation de guillemets autour des chaînes contenant des espaces blancs

Les noms des paramètres et leurs valeurs sont séparés par des espaces sur la ligne de commande. Si une valeur de chaîne contient un espace incorporé, vous devez entourer la chaîne entière de guillemets pour éviter que l'AWS CLI interprète par erreur l'espace comme étant un séparateur entre la valeur et le nom du paramètre suivant. Le type de guillemet que vous utilisez dépend du système d'exploitation AWS CLI sur lequel vous l'exécutez.

Linux and macOS

Utiliser des guillemets simples ' '

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

Pour plus d'informations sur l'utilisation des guillemets, consultez la documentation utilisateur de votre shell préféré.

PowerShell

Devis uniques (recommandé)

' 'Les guillemets simples sont appelés verbatim chaînes. La chaîne est transmise à la commande exactement telle que vous la tapez, ce qui signifie que PowerShell les variables ne seront pas transmises.

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

Devis doubles

" "Les guillemets doubles sont appelés expandable chaînes de caractères. Les variables peuvent être transmises sous forme de chaînes extensibles.

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

Pour plus d'informations sur l'utilisation des guillemets, voir À propos des règles de citation dans Microsoft PowerShell Docs.

Windows command prompt

Utilisez des guillemets doubles" ".

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

Vous pouvez éventuellement séparer le nom du paramètre de la valeur par un signe égal = au lieu d'un espace. Cela n'est généralement nécessaire que si la valeur du paramètre commence par un trait d'union.

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

Utilisation de guillemets dans les chaînes

Les chaînes peuvent contenir des guillemets, et votre interpréteur de commandes peut avoir besoin de guillemets pour fonctionner correctement. L'un des types de valeurs de paramètre courants est une chaîne JSON. Ceci est complexe car il inclut des espaces et des guillemets doubles " " autour du nom et de la valeur de chaque élément dans la structure JSON. La manière dont vous entrez des paramètres au format JSON sur la ligne de commande varie selon le système d'exploitation.

Pour une utilisation plus avancée du JSON dans la ligne de commande, pensez à utiliser un processeur JSON en ligne de commandejq, par exemple pour créer des chaînes JSON. Pour plus d'informations surjq, consultez le référentiel jq sur GitHub.

Linux and macOS

Pour que Linux et macOS interprètent littéralement les chaînes, utilisez des guillemets simples ' ' pour entourer la structure de données JSON, comme dans l'exemple suivant. Il n'est pas nécessaire d'échapper aux guillemets doubles intégrés dans la chaîne JSON, car ils sont traités littéralement. Comme le JSON est placé entre guillemets simples, tous les guillemets simples de la chaîne devront être évités. Cela se fait généralement en utilisant une barre oblique inverse avant le guillemet simple. \'

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

Pour plus d'informations sur l'utilisation des guillemets, consultez la documentation utilisateur de votre shell préféré.

PowerShell

Utilisez des guillemets simples ' ' ou des guillemets doubles" ".

Devis uniques (recommandé)

' 'Les guillemets simples sont appelés verbatim chaînes. La chaîne est transmise à la commande exactement telle que vous la tapez, ce qui signifie que PowerShell les variables ne seront pas transmises.

Étant donné que les structures de données JSON incluent des guillemets doubles, nous suggérons de les ' ' placer entre guillemets simples. Si vous utilisez des guillemets simples, vous n'avez pas besoin d'échapper aux guillemets doubles intégrés dans la chaîne JSON. Cependant, vous devez éviter chaque guillemet par un backtick ` dans la structure JSON.

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

Devis doubles

" "Les guillemets doubles sont appelés expandable chaînes de caractères. Les variables peuvent être transmises sous forme de chaînes extensibles.

Si vous utilisez des guillemets doubles, il n'est pas nécessaire d'échapper aux guillemets simples intégrés dans la chaîne JSON. Cependant, vous devez éviter chaque guillemet double par un backtick ` dans la structure JSON, comme dans l'exemple suivant.

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

Pour plus d'informations sur l'utilisation des guillemets, voir À propos des règles de citation dans Microsoft PowerShell Docs.

Avertissement

Avant d' PowerShell envoyer une commande auAWS CLI, il détermine si votre commande est interprétée à l'aide de règles classiques PowerShell ou entre CommandLineToArgvW guillemets. Lorsque PowerShell des processus l'utilisentCommandLineToArgvW, vous devez éviter les caractères marqués d'une barre oblique inversée\.

Pour plus d'informations sur CommandLineToArgvW in PowerShell, consultez What's up with the strange treatment of guillemets and backslashes par CommandLineToArgv W dans Microsoft DevBlogs, Everyone cite les arguments de ligne de commande de la mauvaise façon dans le blog Microsoft Docs, et sur la fonction CommandLineToArgv W dans Microsoft Docs.

Devis uniques

' 'Les guillemets simples sont appelés verbatim chaînes. La chaîne est transmise à la commande exactement telle que vous la tapez, ce qui signifie que PowerShell les variables ne seront pas transmises. Échappez aux personnages avec une barre oblique inverse\.

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

Devis doubles

" "Les guillemets doubles sont appelés expandable chaînes de caractères. Les variables peuvent être transmises sous forme de expandable chaînes. Pour les chaînes entre guillemets, vous devez vous échapper deux fois en utilisant `\ pour chaque guillemet au lieu de simplement utiliser un backtick. Le backtick échappe à la barre oblique inverse, puis la barre oblique inverse est utilisée comme caractère d'échappement pour le processus. 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 (recommandé)

Pour contourner les règles PowerShell de citation pour la saisie de données JSON, utilisez Blobs pour transmettre vos données JSON directement au. AWS CLI Pour plus d'informations sur les blobs, consultezBLOB.

Windows command prompt

L'invite de commande Windows nécessite des guillemets doubles " " pour entourer la structure de données JSON. En outre, pour éviter que le processeur de commandes n'interprète mal les guillemets doubles intégrés au JSON, vous devez également éviter (faire précéder d'une barre \ oblique inversée) chaque guillemet double " dans la structure de données JSON elle-même, comme dans l'exemple suivant.

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

Seuls les guillemets doubles les plus à l'extérieur ne sont pas placés dans une séquence d'échappement.