Essas são seqüências de caracteres enviadas pelo seu terminal quando você pressiona uma tecla específica. Nada a ver com bash ou linha de leitura propriamente dita, mas você desejará saber qual sequência de caracteres uma determinada tecla ou combinação de teclas envia se desejar configurar readlinepara fazer algo após pressionar uma tecla.
Quando você pressiona a Atecla, geralmente os terminais enviam o acaractere (0x61). Se você pressionar <Ctrl-I>ou <Tab>, geralmente enviará o ^Icaractere também conhecido como TABou \t(0x9). A maioria das teclas de função e navegação geralmente envia uma sequência de caracteres que começa com ^[(control- [), também conhecido como ESCou \e(0x1b, 033 octal), mas a seqüência exata varia de terminal para terminal.
A melhor maneira de descobrir o que uma tecla ou combinação de teclas envia para o seu terminal é executar sed -n le digitar seguido pelo Enterteclado. Então você verá algo como:
$ sed -n l
^[[1;5A
\033[1;5A$
A primeira linha é causada pelo terminal local echofeito pelo dispositivo de terminal (pode não ser confiável, pois as configurações do dispositivo de terminal o afetariam).
A segunda linha é emitida por sed. O $não deve ser incluído, é apenas para mostrar onde está o fim da linha.
Acima Isso significa que Ctrl-Up(que eu tenha pressionado) enviar os 6 caracteres ESC, [, 1, ;, 5e A(0x1b 0x5b 0x31 0x3b 0x35 0x41)
O terminfobanco de dados registra várias sequências para várias chaves comuns para vários terminais (com base no $TERMvalor).
Por exemplo:
TERM=rxvt tput kdch1 | sed -n l
Diria qual sequência de escape é enviada rxvtao pressionar a Deletetecla.
Você pode procurar qual tecla corresponde a uma determinada sequência com o seu terminal atual com infocmp(aqui assumindo ncursesinfocmp):
$ infocmp -L1 | grep -F '=\E[Z'
back_tab=\E[Z,
key_btab=\E[Z,
Combinações de teclas como Ctrl-Upnão possuem entradas correspondentes no terminfobanco de dados; portanto, para descobrir o que elas enviam, leia a fonte ou a documentação do terminal correspondente ou tente com o sed -n lmétodo descrito acima.
bind -p.