Что команды должны найти ключевыми словами оболочки, созданными в функциях и определяемых пользователем функциях?

Обычно информация от устройств выставляется приложениям через файлы устройств. Для мышей, в современных системах Linux, устройство /dev/mice (это устройство собирает события из всех подключенных мышей, существуют также устройства, соответствующие каждой отдельной мыши).

Когда Вы перемещаете или щелкаете мышью, мышь отправляет электрический сигнал на компьютер, который заставляет это повышать прерывание. Часть кода в ядре Linux звонила, обработчик прерываний в свою очередь читает данные о событии (например, какая кнопка была нажата), и инициировал цепочку уведомлений в ядре.

Если существует какое-либо приложение, которое читает из файла устройств, соответствующего этому устройству, то приложение сказано, что вводит, ожидает. Например, если приложение заблокировано в read системный вызов, то системный вызов возвращается.

В типичной системе существует один процесс, читая события мышей: сервер X Window. Та программа управляет входные периферийные устройства и графический дисплей. Отдельные графические приложения затем уведомляются относительно событий от нажатия мыши через дженерик X протоколов события, которые несут другие типы событий, такие как нажатия клавиш, изменения фокуса окна, изменения видимости окна, …

6
31.01.2013, 01:08
5 ответов

В Bash:

  1. man bash | grep -10 RESERVED зарезервированные слова списков:

    ! случай coproc еще делают сделанный elif esac fi для функции если в выборе затем до в то время как {} время [[]]
  2. declare -F и typeset -F выставочные имена функций без их содержания.
  3. enable перечисляет встроенные команды оболочки (я не думаю, что это функции как таковые).So, делает man builtins
3
27.01.2020, 20:24

С zsh:

PATH= type -m '*'

Скажет Вам все 3.

В ударе, для списка ключевых слов можно сделать:

complete -A keyword :

и затем введите : <Tab><Tab>

Для builtins, замены keyword с builtin выше и для функций, я позволю Вам предположить.

3
27.01.2020, 20:24
  • 1
    В zsh, списке псевдонимов, функций и builtins также доступно как ключи массива: print -l ${(ko)aliases}, и т.д. –  Gilles 'SO- stop being evil' 31.01.2013, 01:11
  • 2
    @Stephane Chazelas:Спасибо. но когда я выполнил команды complte -A keyword : <tab> <tab> и complte -A builtin : <tab> <tab> , оба раза это запросило мой "Дисплей все 2 154 возможности? (y или n), –  Forever Learner 01.02.2013, 22:51
  • 3
    @CppLearner, это не то, что я сказал. Введите "полную" команду, которая переопределяет завершение для ":" команда, и затем вводит: пространство, вкладка и вкладка. –  Stéphane Chazelas 01.02.2013, 23:58

Ответ для 2-го вопроса в случае bash или zsh: declare -f.

1
27.01.2020, 20:24
[119251] Вы также можете использовать [119690] compgen[119691] в [119692] bash[119693]:

compgen -k[119890] перечисляет ключевые слова

compgen -b[119892] или [119893]enable[119894] списки builts

ln -sf /full/path/to/parent/child/child ../child1
ln -sf /full/path/to/parent/child/child ../child2
compgen -A function[119896] или [119897]объявить -F[119898] списки functionscompgen -a[119900] или [119901]псевдоним списков[119902] списки псевдонимовcompgen -a[119693]. c[119904] списки команд

compgen -v[119906] списки переменных

compgen -e[119908] или [119909]export[119910] списки экспортируемых переменных

4
27.01.2020, 20:24

В баш

  • ключевые слова (зарезервированные слова):

    compgen -A keyword       # or:  compgen -k
    
  • функции (, определенные в момент выполнения):

    compgen -A function      # Only names.
    declare -F               # Only names but prefixed with `declare -f`.
    

    declare -f #Полное определение функции.

  • встроенные функции

    compgen -A builtin       # Only names.
    enable                   # Names prefixed with `enable `
    man builtins             # Only if the correct man package is installed.
    

Существуют и другие ключевые слова для compgen, а также :псевдоним, команды, переменные, экспорт и т. д.

Список возможныхcompgen-Aвариантов можно найти, выполнив:

 compgen -A                  # and press Tab (Maybe twice vary by configuration).
0
27.01.2020, 20:24

Теги

Похожие вопросы