Usar comillas y literales con cadenas en AWS CLI - AWS Command Line Interface

Esta documentación es AWS CLI únicamente para la versión 1 de la versión. Para ver la documentación relacionada con la versión 2 de AWS CLI, consulte la Guía del usuario de la versión 2.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Usar comillas y literales con cadenas en AWS CLI

Hay dos maneras principales en las que se usan comillas simples y dobles en el AWS CLI.

Usar comillas alrededor de cadenas que contienen espacios en blanco

Los nombres de los parámetros y sus valores están separados por espacios en la línea de comandos. Si el valor de una cadena contiene un espacio incrustado, debe escribir toda la cadena entre comillas para evitar que se malinterprete el espacio como un separador entre el valor y el nombre del siguiente parámetro. AWS CLI El tipo de comillas que utilice depende del sistema operativo en el que se ejecute. AWS CLI

Linux and macOS

Uso de comillas simples ' '

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

Para obtener más información sobre el uso de las comillas, consulte documentación del usuario de su shell preferido.

PowerShell

Comillas simples (recomendadas)

Las marcas de comillas simples ' ' se llaman cadenas verbatim. La cadena se pasa al comando exactamente como se escribe, lo que significa que PowerShell las variables no se transferirán.

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

Comillas dobles

Las marcas de comillas dobles " " se llaman cadenas expandable. Las variables se pueden pasar en cadenas expandibles.

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

Para obtener más información sobre el uso de comillas, consulte Acerca de las reglas de cotización en Microsoft PowerShell Docs.

Windows command prompt

Uso de comillas dobles " ".

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

Si lo desea, puede separar el nombre del parámetro del valor con un signo de igual = en lugar de un espacio. Normalmente, esto solo es necesario si el valor del parámetro comienza con un guion.

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

Uso de comillas dentro de cadenas

Las cadenas pueden contener comillas y el shell puede requerir comillas de cierre para que funcionen correctamente. Uno de los tipos de valores de parámetros más comunes es una JSON cadena. Esto es complejo, ya que incluye espacios y comillas dobles " " alrededor del nombre y el valor de cada elemento de la JSON estructura. La forma de introducir los parámetros JSON con formato en la línea de comandos varía según el sistema operativo.

Para un JSON uso más avanzado de la línea de comandos, considere la posibilidad de utilizar un JSON procesador de línea de comandos, por ejemplojq, para crear JSON cadenas. Para obtener más informaciónjq, consulte el repositorio jq en GitHub.

Linux and macOS

Para que Linux y macOS interpreten cadenas literalmente, utilice comillas simples ' ' para encerrar la estructura de JSON datos, como en el siguiente ejemplo. No es necesario evitar las comillas dobles incrustadas en la JSON cadena, ya que se tratan literalmente. Como el JSON está encerrado entre comillas simples, será necesario eliminar todas las comillas simples de la cadena, lo que suele hacerse con una barra invertida antes de la comilla simple. \'

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

Para obtener más información sobre el uso de las comillas, consulte documentación del usuario de su shell preferido.

PowerShell

Utilice comillas simples ' ' o comillas dobles " ".

Comillas simples (recomendadas)

Las marcas de comillas simples ' ' se llaman cadenas verbatim. La cadena se pasa al comando exactamente como se escribe, lo que significa que PowerShell las variables no se transferirán.

Como las estructuras de JSON datos incluyen comillas dobles, le sugerimos que las cierre entre comillas ' ' simples. Si utiliza comillas simples, no necesita evitar las comillas dobles incrustadas en la JSON cadena. Sin embargo, debe evitar cada comilla simple con una comilla invertida ` dentro de la JSON estructura.

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

Comillas dobles

Las marcas de comillas dobles " " se llaman cadenas expandable. Las variables se pueden pasar en cadenas expandibles.

Si utiliza comillas dobles, no necesita evitar las comillas simples incrustadas en la JSON cadena. Sin embargo, debe evitar cada comilla doble con una comilla invertida ` dentro de la JSON estructura, como en el ejemplo siguiente.

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

Para obtener más información sobre el uso de comillas, consulte Acerca de las reglas de cotización en Microsoft PowerShell Docs.

aviso

Antes PowerShell de enviar un comando a AWS CLI, determina si el comando se interpreta mediante reglas típicas PowerShell o entre CommandLineToArgvW comillas. Cuando PowerShell los procesos se utilizanCommandLineToArgvW, debes evitar los caracteres con una barra \ invertida.

Para obtener más información sobre CommandLineToArgvW in PowerShell, consulte Qué pasa con el extraño tratamiento de las comillas y las barras invertidas por CommandLineToArgv W en Microsoft DevBlogs, Todo el mundo cita los argumentos de la línea de comandos de manera incorrecta en el blog de Microsoft Docs y la función CommandLineToArgv W en Microsoft Docs.

Comillas simples

Las marcas de comillas simples ' ' se llaman cadenas verbatim. La cadena se pasa al comando exactamente como se escribe, lo que significa que PowerShell las variables no se transferirán. Los caracteres se escapan con una barra invertida\.

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

Comillas dobles

Las marcas de comillas dobles " " se llaman cadenas expandable. Las variables se pueden pasar en cadenas expandable. En el caso de las cadenas entre comillas dobles, hay que escapar dos veces usando `\ para cada cita en lugar de usar solo una comilla invertida. La barra invertida escapa la barra invertida y, a continuación, la barra invertida se utiliza como un carácter de escape para proceso 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 (recomendado)

Para evitar las reglas PowerShell de cotización para la entrada de JSON datos, usa Blobs para pasar tus JSON datos directamente a. AWS CLI Para obtener más información acerca de Blobs, consulte o Blob.

Windows command prompt

La línea de comandos de Windows requiere comillas dobles " " para cerrar la JSON estructura de datos. Además, para evitar que el procesador de comandos malinterprete las comillas dobles incrustadas en laJSON, también debe evitar (preceder de una barra invertida\) todas las comillas dobles de la propia estructura de JSON datos, como " en el ejemplo siguiente.

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

El único caso en el que no se utiliza el carácter de cierre es con las comillas dobles de los extremos.