bash是否有错字校正器?


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的一般扩展名来解决这种问题。

有人听说过这样的扩展名吗?


Answers:


4

我不知道通用的一种,但是目录名称有一种:

$ 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)中找不到的命令的软件包。



0

command-not-found软件包应在最近的发行版中提供此功能。

如果没有,您可以从command_not_found_handle()函数中手动调用它。

另一个选择是这个

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.