Entrecomillar con cadenas en la AWS CLI - AWS Command Line Interface

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.

Entrecomillar con cadenas en la 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 un valor de cadena contiene un espacio incrustado, debe rodear toda la cadena con comillas para evitar que la AWS CLI malinterprete el espacio como un divisor entre el valor y el siguiente nombre del parámetro. El tipo de comillas que utilice depende del sistema operativo en el que esté ejecutando la 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 las variables de PowerShell no pasará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 las comillas, consulte Acerca de las reglas de entrecomillado en los Documentos de Microsoft PowerShell.

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 valor de parámetro comunes es una cadena JSON. Esto es complejo, ya que incluye espacios y comillas dobles " " alrededor de cada nombre de elemento y valor en la estructura JSON. El modo en que introduzca parámetros con formato JSON en la línea de comandos varía en función de su sistema operativo.

Para conocer un uso más avanzado de JSON en la línea de comandos, considere usar un procesador JSON de línea de comandos, comojq, para crear cadenas JSON. Para obtener más información sobre jq, consulte el repositorio jq en GitHub.

Linux and macOS

Para que Linux y macOS interpreten cadenas en forma literal, use comillas simples ' ' para entrecomillar la estructura de datos JSON, como en el siguiente ejemplo. No necesita cerrar las comillas dobles incrustadas en la cadena JSON, ya que se las trata de manera literal. Dado que la cadena JSON está encerrada entre comillas simples, se deberá cerrar cualquier comilla simple en la cadena. Esto generalmente se logra usando una barra diagonal inversa 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 las variables de PowerShell no pasarán.

Dado que las estructuras de datos JSON incluyen comillas dobles, sugerimos comillas simples ' ' para encerrarlas. Si usa comillas simples, no necesita cerrar las comillas dobles incrustadas en la cadena JSON. Sin embargo, debe cerrar cada comilla simple con una tilde invertido ` dentro de la estructura JSON.

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 usa comillas dobles, no necesita cerrar las comillas simples incrustadas en la cadena JSON. Sin embargo, debe cerrar cada comilla doble con un acento grave ` dentro de la estructura JSON, como con el siguiente ejemplo.

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 las comillas, consulte Acerca de las reglas de entrecomillado en los Documentos de Microsoft PowerShell.

aviso

Antes de que PowerShell envíe un comando a la AWS CLI, determina si su comando se interpreta usando PowerShell típico o reglas de entrecomillado de CommandLineToArgvW. Cuando PowerShell procesa mediante CommandLineToArgvW, deben escaparse los caracteres con una barra invertida \.

Para obtener más información sobre CommandLineToArgvW en PowerShell, consulte ¿Qué pasa con el extraño tratamiento de comillas y barras invertidas por CommandLineToArgVW? en Microsoft DevBlogs, Todos citan los argumentos de la línea de comandos de forma incorrecta en Microsoft Docs Blog yFunción CommandLineToArgVW en los Documentos de Microsoft.

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 las variables de PowerShell no pasará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. Para cadenas con comillas dobles, tiene que escapar dos veces usando `\ para cada comilla en lugar de usar solo un signo de acento. 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 omitir las reglas de entrecomillado de PowerShell para la entrada de datos JSON, use Blobs para pasar los datos JSON directamente a la AWS CLI. Para obtener más información acerca de Blobs, consulte o Blob.

Windows command prompt

El símbolo del sistema de Windows requiere comillas dobles " " para entrecomillar la estructura de datos JSON. Además, para evitar que el procesador de comandos malinterprete las comillas dobles incrustadas en el JSON, también debe cerrar (precedido por un carácter de barra invertida \) cada comilla doble " dentro de la propia estructura de datos JSON, como en el siguiente ejemplo.

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.