¿Cómo escapar de las comillas en shell?

Pregunta:

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. Para los propósitos de esta pregunta, digamos que quiero repetir 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:

Puede utilizar la siguiente sintaxis 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 especialmente. La palabra se expande a una cadena, con los caracteres de escape con 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

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım