A=B\
C
significa "A es igual a la cadena B, seguido de un salto de línea que estoy ignorando, seguido de una C"
No hay CR en lo que has escrito, por lo que el shell lo ve. El final de línea de Linux/Unix es un salto de línea (LF), no CR. El CR se emite como parte del manejo del terminal. La mayoría de los terminales necesitan un salto de línea para bajar una línea y un retorno de carro para enviar el cursor de vuelta a la izquierda. El CR es insertado por el kernel cuando envía un salto de línea al terminal, cuando el terminal lo necesita; es decir, no es visible para el shell. Ten en cuenta que, por ejemplo, un editor visual puede separar el uso de CR y LF: los pocos caracteres hasta la próxima parte de la pantalla que se debe reescribir pueden involucrar un LF (para bajar de manera recta por la página sin cambiar de columna).
Un poco más confuso, también hay una traducción de entrada para los teclados. La tecla Enter normalmente envía un retorno de carro (Control-M). Pero para reconocer que se ha introducido un comando, el shell necesita ver un final de línea. Un parámetro adicional de stty
describe por tanto al manejo de terminal del kernel que un CR de entrada debe ser traducido a un final de línea. Por lo tanto, el shell sigue sin ver un CR.
El resultado final es que el terminal envía:
A=B\C
El shell recibe:
A=B\C
El shell interpreta eso como "oh, barra invertida y salto de línea - simplemente ignoro eso" y termina con:
A=BC
Y en la salida el kernel modifica la secuencia enviada al terminal durante la entrada de comandos como:
A=B\C
El manejo del kernel del terminal es gestionado por el comando del shell stty
y dependiendo de la implementación (Linux, Mac OS X, *BSD), los detalles subyacentes deben encontrarse en man termios
, man tty_ioctl
, man console_ioctl
, etc.
1 votos
Hola usuario3872279. He editado ligeramente tu pregunta principalmente para dar formato (para resaltar cuál es tu pregunta) y cambié el título para que sea más descriptivo. Si sientes que cambié tu intención de alguna manera, siéntete libre de deshacer la edición, o editar aún más tú mismo.
0 votos
@MichaelKjörling De hecho, debido a mi mal inglés, no puedo describir de manera elegante lo que quiero preguntar. Aprecio que hayas entendido lo que pasa por mi mente ¡Muchas gracias!