bash 是否有拼写错误纠正器?

bri*_*gge 8 unix bash typing spell-check

我想要一些东西来挂钩 bash 上的“未找到命令”错误并提供有用的修复。

例如:

grep-C3  error
bash: grep-C3: command not found
Run Code Online (Sandbox Code Playgroud)

如果它说:

Did you mean: grep -C3 error (Y/n)
Run Code Online (Sandbox Code Playgroud)

我已经看到人们在 .bash_profile 脚本中包含常见的拼写错误,例如“alias gerp=grep”,但我认为有人可能已经为 bash 编写了一个通用扩展来解决此类问题。

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

Den*_*son 4

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

$ shopt -s cdspell
$ cd /usr/ibn
/usr/bin
$ pwd
/usr/bin
$ cd /usr/shar/doc
/usr/share/doc
Run Code Online (Sandbox Code Playgroud)

这是来自 Bash 的手册页:

如果搜索不成功,shell 会搜索已定义的 shell
函数名为command_not_found_handle。如果该函数存在,那么它就是
使用原始命令和原始命令的参数调用  
作为其论点

也许可以用它来做你想做的事,但代码将是一个很大的挑战。顺便说一下,例如,Ubuntu 使用它来显示包含安装说明 (apt-get) 中未找到的命令的软件包。