GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo escapar de las comillas en Shell?

Tengo problemas para escapar de los personajes en bash. Me gustaría escapar de las comillas simples y dobles mientras ejecuto un comando con un usuario diferente. A los efectos de esta pregunta, digamos que quiero hacer eco de lo siguiente en la pantalla:

'single quote phrase' "double quote phrase"

¿Cómo puedo escapar de todos los caracteres especiales, si también necesito cambiar a un usuario diferente:

sudo su USER -c "echo "'single quote phrase' "double quote phrase"""

Por supuesto, esto no produce el resultado correcto.

Respuesta aceptada:

Puede utilizar la siguiente sintaxis de literal de cadena:

> echo $''single quote phrase' "double quote phrase"'
'single quote phrase' "double quote phrase"

De man bash

Las palabras de la forma $'cadena' se tratan de manera especial. La palabra se expande
a una cadena, con caracteres de escape de barra invertida reemplazados según lo especificado por
el estándar
ANSI C. Las secuencias de escape de barra invertida, si están presentes, se decodifican de la siguiente manera:

          a     alert (bell)
          b     backspace
          e
          E     an escape character
          f     form feed
          n     new line
          r     carriage return
          t     horizontal tab
          v     vertical tab
          \     backslash
          '     single quote
          "     double quote
          nnn   the eight-bit character whose value is the octal value nnn (one to three digits)
          xHH   the eight-bit character whose value is the hexadecimal value HH (one or two hex digits)
          cx    a control-x character

Linux
  1. ¿Cuándo son necesarias las comillas dobles?

  2. ¿Por qué las páginas man de Unix usan dobles acentos graves en lugar de comillas dobles?

  3. Mientras usa printf, ¿cómo escapar de los caracteres especiales en el script de shell?

  4. Cómo:¿Historial ilimitado de Bash/shell?

  5. ¡Cómo escapar! en contraseña?

Cómo instalar Linux Bash Shell en Windows 10

Cómo cambiar un Shell de usuario en Linux

Cómo instalar y usar Nu Shell en Linux

Diferencia entre comillas simples y dobles en Bash Shell

¿Cómo usar if-else en Shell Scripts?

¿Cómo ejecutar un comando en un script de Shell?