Saltar al contenido

¿Hay alguna forma de escapar de las comillas simples en el shell?

Solución:

Dennis señala las alternativas habituales en su respuesta (cadenas simples en doble, doble en simple, comillas simples concatenadas con comillas simples escapadas; ya mencionó los operadores de comillas personalizables de Perl), pero tal vez esta sea la respuesta directa que estaba buscando por.

En shells tipo Bourne (sh, ksh, ash, dash, bash, zsh, etc.), las cadenas entre comillas simples son completamente literales. Esto facilita la inclusión de caracteres que el shell trataría especialmente sin tener que escapar de ellos, pero sí significa que el carácter de comillas simples en sí no se puede incluir en cadenas de comillas simples.

Me niego a pensar siquiera en los shells de tipo csh, ya que están completamente rotos en otros aspectos (consulte Programación Csh considerada perjudicial).

Para mí, todos tus ejemplos producen:

¡Hola Mundo!

Y también esto:

perl -e 'print "Hello, world!", "n";'

Y esto:

perl -e 'print '''Hello, world!''', "n";'

¿Puede aclarar qué es lo que está tratando de hacer?

En el shell, como Bash, si desea imprimir comillas como parte de la cadena, un tipo de comillas escapa al otro.

$ echo '"Hello, world!"'
"Hello, world!"
$ echo "'Hello, world!'"
'Hello, world!'

Editar:

He aquí otra forma:

$ perl -e 'print "47Hello, world!47", "n";'
'Hello, world!'
$ echo -e "47Hello, world! 47"
'Hello, world! '

El espacio después del signo de exclamación evita un error de expansión del historial. Yo podría haber hecho set +H en lugar de.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *