Itu adalah urutan karakter yang dikirim oleh terminal Anda ketika Anda menekan tombol yang diberikan. Tidak ada hubungannya dengan bash atau readline per se, tetapi Anda akan ingin tahu urutan karakter apa yang diberikan kunci atau kombinasi tombol jika Anda ingin mengonfigurasi readlineuntuk melakukan sesuatu dengan menekan tombol yang diberikan.
Saat Anda menekan Atombol, umumnya terminal mengirim karakter a(0x61). Jika Anda menekan <Ctrl-I>atau <Tab>, maka umumnya mengirim ^Ikarakter yang juga dikenal sebagai TABatau \t(0x9). Sebagian besar tombol fungsi dan navigasi umumnya mengirim urutan karakter yang dimulai dengan ^[(control- [), juga dikenal sebagai ESCatau \e(0x1b, 033 oktal), tetapi urutan yang tepat bervariasi dari terminal ke terminal.
Cara terbaik untuk mengetahui apa yang dikirim kunci atau kombinasi tombol untuk terminal Anda, dijalankan sed -n ldan untuk mengetiknya diikuti dengan Enterdi keyboard. Maka Anda akan melihat sesuatu seperti:
$ sed -n l
^[[1;5A
\033[1;5A$
Baris pertama disebabkan oleh terminal lokal yang echodilakukan oleh perangkat terminal (itu mungkin tidak dapat diandalkan karena pengaturan perangkat terminal akan mempengaruhinya).
Baris kedua adalah keluaran oleh sed. Ini $tidak untuk dimasukkan, itu hanya untuk menunjukkan di mana akhir baris.
Di atas berarti bahwa Ctrl-Up(yang saya sudah ditekan) mengirim 6 karakter ESC, [, 1, ;, 5dan A(0x1b 0x5b 0x31 0x3b 0x35 0x41)
Basis terminfodata mencatat sejumlah urutan untuk sejumlah kunci umum untuk sejumlah terminal (berdasarkan $TERMnilai).
Contohnya:
TERM=rxvt tput kdch1 | sed -n l
Akan memberi tahu Anda apa urutan pengiriman yang dikirim dengan rxvtmenekan Deletetombol.
Anda dapat mencari kunci yang sesuai dengan urutan yang diberikan dengan terminal Anda saat ini dengan infocmp(di sini dengan asumsi ncursesinfocmp):
$ infocmp -L1 | grep -F '=\E[Z'
back_tab=\E[Z,
key_btab=\E[Z,
Kombinasi kunci seperti Ctrl-Uptidak memiliki entri yang sesuai dalam terminfodatabase, jadi untuk mengetahui apa yang mereka kirim, baca sumber atau dokumentasi untuk terminal yang sesuai atau coba dengan sed -n lmetode yang dijelaskan di atas.
bind -p.