8

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

Например:

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

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

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

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

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

2 ответа2

4

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

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

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

If the search is unsuccessful, the shell searches for a defined shell 
function named command_not_found_handle.  If that function exists, it is 
invoked with the original command and the original command's arguments  
as its arguments

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

2

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .