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

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

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

  • Не удается открыть как корневой терминал, так и nautilus (в Debian 7) после обновления графического драйвера Intel
  • Ярлык клавиатуры, чтобы открыть новый терминал, если он не существует на этом рабочем столе. В противном случае сосредоточьте текущий
  • Настройка сочетаний клавиш для выполнения команды терминала
  • Магические переменные окружения в gnome-terminal
  • Скопировать / вставить из выбора терминала не работает
  • Как запустить gnome-терминал с уникальными заголовками для нескольких вкладок?
  • gnome-terminal из командной строки не работает в некоторых контейнерах
  • цвета vim не загружаются автоматически (вероятный конфликт Vundle)
  • 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

    Отображение переменной даты

    Можно ли сделать загрузочное устройство с несколькими дистрибутивами Linux?

    Создание домашнего файлового сервера с использованием Arch Linux

    Запустить скрипт при выключении

    Контролируйте точность процентного соотношения CPU или MEM в верхней части?

    Чтение ввода с помощью сценария запуска Finnix 110

    Как сохранить конечную косую черту после выбора каталога из параметров завершения zsh?

    Сообщения Motd для отображения текущих событий в мире

    CentOS 7 Почему пакет звуковых сигналов не существует?

    Лучший способ освободить место на диске от удаленных файлов, которые открыты

    Debian: GPG не может получить ключ ядра Linux

    Как войти в однопользовательский режим с отключенным пользователем root?

    Sendmail с поддержкой поддержки TLS FROM: address

    Как я могу учить grep для обработки свойств-файлов, таких как текстовые файлы

    Поддержка датчика окружающего света в GNOME 3.18

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