Як я можу зробити readісторію підтримки вбудованих команд, натискаючи клавішу вгору / вниз, щоб перейти до них?
Я намагався знайти, коли ви натискаєте клавішу вгору, однак, схоже, це не працює read:
read -p '> ' -n 3 foo
echo
echo -n "$foo" | hexdump
Натискання клавіш зі стрілками, здається, працює, і я можу виявити її за допомогою цього, однак, якщо натиснути aa↑, вона вийде з ладу, оскільки прочитає лише перший символ ідентифікатора стрілки вгору, а третя потрібна для розрізнення різної стрілки ключі.
rlwrap, що (принаймні, на моїй машині)rlwrapне в змозі граціозно працювати з CTRL-C, наприклад, спробуйте запуститиUSERINPUT=$(rlwrap -o cat)та натиснути CTRL-C і подивитися, як поводиться ваш термінал після цього (запустітьresetкоманду, щоб знову повернутися до нормального стану) .