linux - teclado - let bash
¿Cómo escapar de una comilla simple en una cadena de comillas simples en Bash? (3)
Quiero mostrar una cadena en Bash como este
I''m a student
Por supuesto que puedes hacerlo así.
echo "I''m a student"
Pero, ¿cómo lograr esto al usar comillas simples alrededor de la cadena?
El siguiente ejemplo funciona porque la comilla simple escapada está técnicamente entre dos argumentos entre comillas simples
echo ''I''/'''m a student''
La solución "fea" mencionada por Glenn Jackman en realidad debería aparecer como una respuesta de nivel superior. Funciona bien y es realmente hermoso en algunas situaciones.
''I''"''"''m a student''
Esto termina la cadena entre comillas simples después de I
comience inmediatamente una cadena entre comillas dobles que contiene una comilla simple y luego comienza otra cadena entre comillas simples. Bash luego concatena todas las cadenas contiguas en una sola.
¡Hermoso!
echo ''I/'m a student''
No funciona. Pero las siguientes obras:
echo $''I/'m a student''
De la página man de bash:
Una comilla simple puede no aparecer entre comillas simples, incluso cuando está precedida por una barra invertida.
....
Las palabras de la forma $ ''cadena'' se tratan especialmente. La palabra se expande a cadena, con caracteres de escape de barra invertida reemplazados según lo especificado por el estándar ANSI C.