Есть ли корректор опечаток для Bash?

1889
brianegge

Я хотел бы, чтобы что-то подключилось к ошибке «команда не найдена» в bash и предложило полезное исправление.

Например:

grep-C3 error bash: grep-C3: command not found 

Было бы хорошо, если бы он сказал:

Did you mean: grep -C3 error (Y/n) 

Я видел, как люди включают в скрипт .bash_profile типичные опечатки, такие как 'alias gerp = grep', но я полагаю, что кто-то, вероятно, написал общее расширение для bash, чтобы исправить подобные вещи.

Кто-нибудь слышал о таком расширении?

8
http://www.catb.org/~esr/jargon/html/D/DWIM.html Richard Hoskins 15 лет назад 1

2 ответа на вопрос

4
Dennis Williamson

Я не знаю, что общего назначения, но есть один для имен каталогов:

$ shopt -s cdspell $ cd /usr/ibn /usr/bin $ pwd /usr/bin $ cd /usr/shar/doc /usr/share/doc 

Это из справочной страницы для Bash:

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

Может быть возможно использовать это, чтобы сделать то, что вы хотите, но код будет довольно сложной задачей. Кстати, Ubuntu, например, использует это для отображения пакетов, которые содержат команду, которая не была найдена с инструкциями по установке (apt-get).

2
Matthew Talbert

Похоже, что Shopt будет хорошим началом.

Кроме того, кажется, что в zsh встроена коррекция опечаток.

ссылка на «магазин» выглядит как пустая страница отсюда. sylvainulg 10 лет назад 0

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