Подтвердить что ты не робот

Автозаполнение аргументов командной строки

В bash исполняемые файлы, такие как mplayer и imagemagick "convert", имеют классную функцию автозаполнения в своих аргументах командной строки. Например, если я набираю

mplayer <tab><tab>

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

Аналогично, если я набираю

convert -<tab><tab>

то я увижу все возможные варианты преобразования script, что отлично.

Мой вопрос заключается в том, как достичь аналогичной функциональности, используя скрипты bash, ruby ​​или python?

4b9b3361

Ответ 1

Это пример умного завершения BASH. Основное описание здесь, руководство по написанию собственных расширений здесь и другое (на основе Debian) руководство здесь. И здесь более полное описание для команды complete (команда, которая облегчает это поведение).

Ответ 2

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