Термінали розуміють лише символи, а не клавіші. Отже, всі функціональні клавіші кодуються як послідовності символів, використовуючи контрольні символи. Окрім кількох поширених, які мають асоційований керуючий характер ( Tabє Ctrl+I, Enterє Ctrl+M, Escє Ctrl+[), функціональні клавіші надсилають послідовності втечі, починаючи з Ctrl+[ [або Ctrl+[ O. Ви можете скористатися tputкомандою, щоб побачити, які програми очікування послідовності очікування очікують для кожної функціональної клавіші вашого терміналу. Ці послідовності зберігаються в terminfoбазі даних. Наприклад, фрагмент оболонки нижче показує послідовності відходу, відповідні кожній функціональній клавіші.
$ for x in {1..12}; do echo -n "F$x "; tput kf$x | cat -A; echo; done
F1 ^[OP
F2 ^[OQ
F3 ^[OR
F4 ^[OS
F5 ^[[15~
F6 ^[[17~
F7 ^[[18~
F8 ^[[19~
F9 ^[[20~
F10 ^[[21~
F11 ^[[23~
F12 ^[[24~
Інший спосіб побачити послідовність виходу функціональної клавіші - натиснути Ctrl+ Vу термінальній програмі, яка не відновлює клавішу Ctrl+ V(наприклад, оболонку). Ctrl+ Vвставляє наступний символ (який буде символом втечі) буквально, і ви зможете побачити решту послідовності, яка складається із звичайних символів.
Оскільки послідовності можуть бути незручними для введення, слід вивчити зміну ключових прив’язок у вашій програмі або використовувати інший емулятор терміналу. Також зауважте, що у вас може бути обмеження часу: деякі програми розпізнають послідовності втечі лише тоді, коли вони надходять досить швидко, щоб вони могли дати значення лише Escклавіші.