En utilisant des guillemets et des littéraux 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.

En utilisant des guillemets et des littéraux avec des chaînes dans AWS CLI

Il existe principalement deux manières d'utiliser des guillemets simples et doubles dans le AWS 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 intégré, vous devez entourer la chaîne entière de guillemets pour éviter que l' AWS CLI espace ne soit mal interprété comme 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

Utiliser des guillemets à l'intérieur des 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ètres les plus courants est une JSON chaîne. Cela est complexe car il inclut des espaces et des guillemets doubles " " autour du nom et de la valeur de chaque élément de la JSON structure. La façon dont vous entrez les paramètres JSON formatés sur la ligne de commande varie en fonction de votre système d'exploitation.

Pour une JSON utilisation plus avancée en ligne de commande, pensez à utiliser un JSON processeur de ligne de commande, par exemplejq, pour créer des JSON chaînes. 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 JSON des données, comme dans l'exemple suivant. Il n'est pas nécessaire d'échapper aux guillemets doubles intégrés dans la JSON chaîne, car ils sont traités littéralement. Étant donné que 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 JSON données incluent des guillemets doubles, nous suggérons de les ' ' placer entre guillemets simples. Si vous utilisez des guillemets simples, il n'est pas nécessaire d'éviter les guillemets doubles incorporés dans la JSON chaîne. Cependant, vous devez éviter chaque guillemet par un backtick ` dans la JSON structure.

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 incorporés dans la JSON chaîne. Cependant, vous devez éviter chaque guillemet double par un backtick ` dans la JSON structure, 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 au AWS 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 devis 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 relatives à la saisie de JSON données, utilisez Blobs pour transmettre vos JSON données 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 JSON données. En outre, pour éviter que le processeur de commandes n'interprète mal les guillemets doubles intégrés dans leJSON, vous devez également éviter (faire précéder d'une barre \ oblique inversée) chaque guillemet double " dans la structure de JSON données 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.