Как выполнить скрипт в оболочке при нажатии клавиши быстрого доступа

Как я могу выполнить скрипт в командной консоли при нажатии клавиши быстрого доступа.

По сути, мне нужно, когда нажата клавиша быстрого доступа, скрипт должен читать из файла и отображать это содержимое в терминале.

  • Терминал Gnome не открывается
  • Установить название терминала из Mutt?
  • Как прокручивать вверх и вниз в терминале с помощью ключей PgUp и PgDn?
  • изменить местоположение окна терминала по умолчанию
  • Тема выглядит по-разному в зависимости от местоположения в FS?
  • Установка световой схемы vim на gnome-terminal
  • Ключ дома не работает в терминале
  • установить цвет табуляции в эмуляторе с вкладками
  • One Solution collect form web for “Как выполнить скрипт в оболочке при нажатии клавиши быстрого доступа”

    Вы можете использовать встроенную команду, bind для сопоставления сочетания клавиш, чтобы она выполняла скрипт command / shell.

    пример

    Скажем, мы хотим запустить команду pwd , когда мы нажимаем клавишу F12 .

     $ bind '"\e[24~":"pwd\n"' 

    Теперь, когда я нажимаю F12 в своем приглашении, $ :

     $ pwd /home/saml 

    Определение сочетаний клавиш

    Вы можете использовать следующую технику для определения кода эвакуации для данного сочетания клавиш. В большинстве систем нажмите Ctrl + V , отпустите, а затем нажмите клавишу, для которой требуется код. Есть и другие системы, которые будут работать с M вместо V

    пример

    Нажав Ctrl + V, отпустите оба Ctrl и V и, наконец, нажмите F12 в окне терминала, это возвращает:

     $ ^[[24~ 

    Этот вывод можно интерпретировать следующим образом, ^[ является клавишей Esc . Поэтому, когда мы хотим указать этот конкретный ключ с помощью команды bind нам нужно использовать символ \e чтобы обозначить клавишу Esc, а затем все остальное сверху. Поэтому команда bind выглядит так:

     $ bind '"\e[24~":"....."' 

    Выполнение команды в середине

    Вы также можете использовать bind -x для настройки сочетаний клавиш, которые будут запускать команды, когда вы находитесь в середине ввода чего-либо в подсказке, и вывод этих команд будет отображаться, но что бы вы набрали в подсказке, остаются нетронутыми.

     $ bind -x '"\eW":"..."' 

    ПРИМЕЧАНИЕ. Этот метод работает только с быстрыми клавишами, которые выводят 1 символ, поэтому F12 здесь не работает.

    пример

    Давайте перейдем к сочетанию клавиш Alt + Shift + W.

     $ bind -x '"\eW":"who"' 

    Скажем, я набираю командный finger :

     $ finger 

    Теперь я нажал сочетание клавиш Alt + Shift + W :

     saml tty1 2013-09-01 11:01 (:0) saml pts/0 2013-09-01 11:03 (:0.0) saml pts/1 2013-09-01 11:05 (:0.0) saml pts/2 2013-09-01 11:05 (:0.0) saml pts/5 2013-09-03 22:45 (:0.0) $ finger 

    Что происходит, так это bind – это команда, определенная командой, who , беря свой вывод и вставляя ее перед подсказкой. Если вы повторите это, вы увидите, что происходит, вот результат, который я ударил 2 раза:

     saml tty1 2013-09-01 11:01 (:0) saml pts/0 2013-09-01 11:03 (:0.0) saml pts/1 2013-09-01 11:05 (:0.0) saml pts/2 2013-09-01 11:05 (:0.0) saml pts/5 2013-09-03 22:45 (:0.0) saml tty1 2013-09-01 11:01 (:0) saml pts/0 2013-09-01 11:03 (:0.0) saml pts/1 2013-09-01 11:05 (:0.0) saml pts/2 2013-09-01 11:05 (:0.0) saml pts/5 2013-09-03 22:45 (:0.0) $ finger 

    Твоя проблема

    Поэтому одна идея заключалась бы в том, чтобы использовать метод bind -x выше и cat для отображения этого текстового файла в вашем приглашении:

     $ bind -x '"\eW":"cat someinfo.txt"' 

    Теперь, когда я запускаю команды, я могу видеть этот файл следующим образом:

     This is text from some multi-line file reminding me how to do some stuff $ finger 

    Вывод файла someinfo.txt отображается над моей командой finger выше.

    Рекомендации

    • В bash, как связать функциональный ключ с командой?
    Interesting Posts

    unix – случайно переместил все под root в / old – Solaris 10

    Является ли GRUB лучшим решением для загрузки? Есть ли более простая альтернатива?

    компилировать программное обеспечение с более старой версией ядра gcc и linux

    Почему мой терминал говорит, что я запускаю -bash (с ведущим тире), а не bash?

    Команда Awk для установки указаний по имени пользователя

    Почему grep игнорирует двоичные файлы по умолчанию?

    automount nfs: параметры тайм-аута autofs для ненадежных серверов – как избежать зависания?

    ClamAV проверить зараженный файл

    Переместить файл и сохранить владельца и режим в одной атомной операции

    Chrome / Chromium crashes («Aw, snap!», Segfault): «Ресурс временно недоступен»

    luks – существует ли двухфакторная аутентификация

    Можно ли иметь файлы, принадлежащие несуществующему пользователю?

    Проблемы с загрузкой CentOS

    Являются ли потоки ядра Linux действительно ядрами?

    Как я могу проверить, определен ли конкретный псевдоним?

    Linux и Unix - лучшая ОС в мире.