Intereting Posts
Скорость записи медленного USB 3 Любая хорошая утилита csv bash? В чем разница между установкой пределов открытых файлов в файле /etc/sysctl.conf vs /etc/security/limits.conf? Как смонтировать VDI с моментальным снимком? cp: невозможно создать обычный файл: недопустимый аргумент Драйвер nVidia NVS 290 зависает при загрузке на Debian Jessie Получите обновляющий список запущенных определенных процессов Заменить текст быстро в очень большом файле Как я могу получить 1080p для работы на моем телевизоре с помощью HDMI с помощью xrandr? Удаление повторяющихся строк после сравнения первого шаблона и специального шаблона tmux не раскрашивает подсказку PS1 Изменение режима встроенной горячей точки Fedora на 5 ГГц Энергосбережение позволяет использовать сенсорную панель для аутентификации требуется действительная дата, когда я подключаюсь к AWS S3 Как установить параметры автоматического монтирования по умолчанию для съемных носителей?

Написание сценария завершения вкладки для bash

Я сделал сценарий оболочки, который читает ввод от пользователя и убивает процесс. Но в bash, если пользователь нажимает клавишу Tab, bash предлагает некоторые keyword или имена file . Однако мой сценарий ничего не предлагает.

Как включить вкладку для моего скрипта?

Простым способом является установка bash-completion (или что-то еще, что ваш дистрибутив вызывает), напишите сценарий завершения и поместите его в /etc/bash_completion.d . Основной скрипт завершения выглядит следующим образом:

 have cancel && _cancel() { local cur COMPREPLY=() _get_comp_words_by_ref cur COMPREPLY=( $( compgen -W "$( lpstat | cut -d' ' -f1 )" -- "$cur" ) ) } && complete -F _cancel cancel 

Это для команды cancel из cups . Читайте о COMPREPLY и compgen в руководстве для bash и адаптируйте его к вашим потребностям.