Интерактивная команда, позволяющая пользователю изменять каталог в bash
Я ищу способ на основе CURSES (bash, c, на самом деле не имеет значения), позволяющий пользователю выбирать папку или даже файл примерно так же, как он делал бы с помощью Midnight Commander.
Я предполагаю использовать вверх / вниз для перемещения курсора, esc для отмены и ввод для выбора элемента под курсором. Если элемент является файлом, верните полный путь к этому файлу, если элемент является папкой, перейдите в эту папку.
Кто-нибудь знает о существующем?
Если нет, то как бы мне написать? Я в основном программист на Java, поэтому я мог бы использовать JavaCurses, но это немного похоже на излишество.
1 ответ
Ты можешь использовать dialog
у которого есть --fselect
для выбора имен файлов и каталогов.
--fselect ширина пути к файлу
Диалоговое окно fselect (выбор файла) отображает окно ввода текста, в котором вы можете ввести имя файла (или каталог), а также два окна с именами каталогов и именами файлов.
Тем не менее, вы должны заметить, что сценарий для изменения каталогов для интерактивной оболочки должен быть получен из источника или в функции, поскольку изменение каталогов ограничено текущей оболочкой. Другими словами, когда выходит обычный скрипт, любой cd
сделано внутри потеряно.