Quando você executa echo
, você está enviando saída para o terminal. O terminal interpreta as seqüências de escape, como a que muda as cores na saída que é enviada para ele. Essas seqüências de escape devem ser enviadas por aplicativos, por isso elas são reconhecidas na saída que vem do aplicativo em execução no terminal. Normalmente, o aplicativo em execução no terminal é aquele iniciado pelo emulador de terminal (seu shell) e os iniciados por este, por sua vez, mas se você executar echo … >/dev/tty2
, então echo
estará efetivamente “executando no terminal” (no sentido que sua saída está indo para o terminal, que é o que importa aqui).
Quando você pressiona Esc [ etc., você está enviando entrada para o terminal. O terminal não interpreta as seqüências de escape, como a que altera as cores na entrada que recebe. O terminal interpreta as seqüências de escape na entrada, mas para um propósito completamente diferente: elas são uma maneira de codificar as teclas de função.
Como funcionam as entradas de teclado e texto? tem algum histórico relevante.