Sample Header Ad - 728x90

Why I can't send escape sequences from keyboard, but can do it from another tty?

5 votes
3 answers
5948 views
I am trying to understand how terminal works by doing different tricks, like writing from one tty to another, changing settings tty1 from tty2, etc. Also, I am trying to change a color by sending escape sequence from keyboard, directly. That is, not by echo -e '\e[0;31m' command, but by direct keyboard input. It doesn’t work. **I do this steps:** 1. Open tty1 and tty2 2. In the tty2 put bash into the sleep mode, by sleep 10m. Type word 'one'. enter image description here 3. Go to tty1, do echo -n ^[[0;31m > /dev/tty2. The first character ^[ is typed by this way Ctrl + v Esc 4. Return to tty2, type word 'two'. Yes - the color has been changed to red by command from another tty. enter image description here 5. Repeat steps 3,4, but with green color and word 'three' enter image description here 6. And finally, I am trying to send the escape sequence not by another tty, but from keyboard directly - by typing ^[[0;37m in tty2. I do everything the same way - Esc (Ctrl + v doesn't needed, because readline is sleeping), then [0;37m, but get this: enter image description here **Question:** Why does it work this way? All characters the same, terminal state the same, but in one case terminal get escape sequence, and in another case don't. ------------------------------------ **Edit** The question was answered here: [Echoed escape sequences doesn't interpreted in Linux tty](https://unix.stackexchange.com/q/518418/109397) .
Asked by MiniMax (4225 rep)
Jun 7, 2017, 09:07 PM
Last activity: Mar 10, 2025, 03:06 PM