2011-08-22 14 views
11

¿Cuál es el nombre y la función del personaje de escape \c en Bash? ¿Cuál es su valor numérico? He visto que \cx es un personaje de control, pero ¿qué pasa con \c? Parece que:¿Qué es el carácter de escape de Bash " c"?

echo -e "Hello World\c" 

y

echo -en "Hello World" 

son equivalentes. Sin embargo, Python no lo usa como un carácter de escape, y falta en todas las listas de caracteres de escape que encontré. ¿Es esto un comportamiento específico de Bash?

+0

he intentado que en C y se imprime "c" en la pantalla http://codepad.org/sBWJfPkc –

Respuesta

12

que en realidad es específico para algunas versiones de echo (estoy bastante seguro de que \c vinieron de SysV, mientras que el -n la versión era un BSD-ismo).

Simplemente significa que no se emite la nueva línea final.

4

Es el carácter de control 'Fin del texto'; informa al Shell que se ha llegado al final del texto.

No estoy del todo seguro de que sea relevante más, pero podría estar equivocado.

aquí está el doc:

http://en.wikipedia.org/wiki/ASCII#ASCII_control_characters

y:

http://en.wikipedia.org/wiki/End-of-text_character

+0

CTRL-C es el carácter ETX, pero tiene muy poco que ver con este caso particular, de lo contrario, FF sería \ l en lugar de \ f, nueva línea sería \ j en lugar de \ n y así sucesivamente. – paxdiablo

+0

No entiendo lo que quiere decir, \ c es ETX, eso es lo que dije, ¿qué es FF? –

+0

Hola @Russ C, Agradezco la respuesta. Sin embargo, parece que @paxdiablo tiene razón. Por ejemplo, intente: 'echo -e" Hello World \ 03 "' (el enlace que proporcionó enumera el valor numérico de ETX como 3). No da el mismo resultado que 'echo -e 'Hello World \ c" '. –

0

¿Puedes actualizar tu pregunta con un poco más de contexto sobre cómo se usa el \ c?

Puede usar \c para escapar de los caracteres de control que, por ejemplo, puede escribir en un archivo o canalizar como entrada a otro comando.

Esto escribirá al terminal el texto "algún comando" seguido por binaria Ctrl-D (0x4 ascii):

echo some control string $'\cd' 

Ver la lista completa de los caracteres de escape en la página de manual de bash: http://linux.die.net/man/1/bash

12

Véase el echo man page o la sección sobre eco en el Bash Builtins section of the Bash manual:

eco interpreta las siguientes secuencias de escape:

...
\ c
          suprimir aún más la producción

+0

Gracias por las referencias y la confirmación de la respuesta de paxdiablo. –

+0

, vale la pena mencionar que \ c no se reconoce, si -e no está en vigencia. –

Cuestiones relacionadas