Tengo una terminal con el bash
shell.
El terminal tiene el ICRNL
indicador configurado (por lo que cuando el terminal envía un CR
, se traducirá a LF
y luego LF
se enviará a bash
):
Pero hice una prueba que mostró que bash
recibirá CR
y no LF
. ¿Porqué es eso?
La prueba que hice es ejecutar hexdump
en otra terminal y hacer que lea lo que envía la primera terminal.
Respuesta1
Cuando ejecuta stty -a
desde el símbolo del sistema de bash, ve la configuración del terminal mientras bash no lee una línea de comando.
Cuando bash lee una línea de comando, cambia algunas configuraciones del terminal, incluido icrnl
(desactivado, porque bash quiere entrada sin formato ya que realiza su propio procesamiento de entrada). Bash restaura la configuración original antes de ejecutar el comando.
Para ver cuáles son las configuraciones del terminal en el indicador de bash, observe qué terminal es y ejecútelo stty
desde otro terminal. Por ejemplo:
En una terminal:
bash-4.2$ tty /dev/pts/3 bash-4.2$
En otra terminal:
$ stty -a </dev/pts/3 … -icrnl …