如果拼写错误,我正在寻找纠正bash命令的方法。
假设您安装了一个名为“FooBar”的程序,但在shell中键入“foobar”(或foo bar或FOOBAR或foebar)。有没有办法检查你的PATH中是否存在类似你想要的东西?
我正在考虑编写一个规范用户输入的bash脚本,并使用Levenshtein distance算法检查他们在PATH中输入的内容。但也许已经写出了一些东西或者更好的方法来完成这项任务。
有什么建议吗?
答案 0 :(得分:3)
如果您的问题仅区分大小写,则可以通过以下方式在readline配置中将其关闭:
echo "set completion-ignore-case On" >> ~/.inputrc
但是,如果你正在寻找一些聪明的机制来执行类似的命令(例如使用模糊逻辑),我不建议在命令行中使用这样的工具,因为它可能是非常危险。
想象一下,例如 rmv 等命令会发生什么?是rm还是mv? ..只有用户才能回答这个问题。
注意:如果您运行的是一个不区分大小写的Cygwin环境,这可能很有用。在Linux中,命令区分大小写。因此,关闭此功能不是一个好主意。