uso teclado programacion poner latinoamericano las invertidas invertida funcion encomillado doble como comillas comilla linux bash escaping

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.