Дополнение

We use cookies. Read the Privacy and Cookie Policy

Другой вариант помощи пользователям реализован в командной оболочке в виде механизма дополнения (completion). Дополнение происходит, когда в процессе ввода команды нажимается клавиша TAB. Давайте посмотрим, как это работает. Допустим, что ваш домашний каталог содержит следующее:

[me@linuxbox ~]$ ls

Desktop ls-output.txt Pictures Templates Videos

Documents Music Public

Попробуйте ввести следующую строку, но не нажимайте клавишу ENTER:

[me@linuxbox ~]$ ls l

Теперь нажмите клавишу TAB:

[me@linuxbox ~]$ ls ls-output.txt

Обратили ли вы внимание, как командная оболочка дополнила командную строку за вас? Попробуйте теперь набрать следующую строку — и снова не нажимайте ENTER):

[me@linuxbox ~]$ ls D

Нажмите TAB:

[me@linuxbox ~]$ ls D

Дополнения не произошло — просто прозвучал звуковой сигнал. Так получилось потому, что символу D соответствует более одного элемента в каталоге. Чтобы командная оболочка дополнила вашу строку, предложенная вами «подсказка» должна иметь однозначное продолжение. Попробуйте продолжить ввод:

[me@linuxbox ~]$ ls Do

Затем нажмите TAB:

[me@linuxbox ~]$ ls Documents

Дополнение произошло.

Этот пример демонстрирует дополнение путей как наиболее частый случай использования дополнения. Однако дополнение также работает с именами переменных (когда слово начинается с символа $), именами пользователей (когда слово начинается с символа ~), командами (когда дополняемое слово является первым в командной строке) и сетевыми именами компьютеров (когда слово начинается с символа @). Дополнение сетевых имен компьютеров действует только в отношении имен, перечисленных в /etc/hosts.

С механизмом дополнения связано несколько управляющих комбинаций клавиш (табл. 8.4).

Существует еще несколько команд, смысл которых для меня не совсем ясен. Полный список вы сможете найти на странице справочного руководства (man) для bash, в разделе «READLINE».

Таблица 8.4. Команды дополнения

Клавиша

Действие

ALT+?

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

ALT+*

Вставит все возможные дополнения. Это пригодится в том случае, если требуется использовать больше одного возможного варианта дополнения

ПРограммируемое дополнение

Последние версии bash реализуют механизм программируемого дополнения. Программируемое дополнение дает возможность добавлять дополнительные правила. Обычно это делается с целью добавить поддержку определенных приложений. Например, можно добавить дополнение списка параметров команды или файлов определенного типа, поддерживаемых приложением. В Ubuntu определено огромное множество таких правил. Программируемое дополнение реализуется посредством функций командной оболочки — небольших мини-сценариев, о которых будет рассказываться в следующих главах. Если вам любопытно, попробуйте выполнить команду

set | less

и вы увидите их. Однако не все дистрибутивы включают эти функции по умолчанию.