Ket*_*omp 3 bash shell autocorrect search-suggestion
gk@Jarvis:~$ sudi
No command 'sudi' found, did you mean:
Command 'sudo' from package 'sudo-ldap' (universe)
Command 'sudo' from package 'sudo' (main)
sudi: command not found
Run Code Online (Sandbox Code Playgroud)
我目前实施了一个简单的'你的意思是......?' 对于简单的英语单词,其工作原理如下:
如何在linux命令行中实现代码建议?
bash没有实现建议逻辑; 它位于一个函数中,定义为bash初始化文件的一部分,它由你的发行版放在那里(Ubuntu/Debian,猜测).
bash提供了实现这样一个函数的机制:当它试图执行一个命令,并且找不到该命令时,它会调用该函数command_not_found_handle(如果已定义).
在我的机器上(Ubuntu变体),该函数定义如下:
$ type command_not_found_handle
command_not_found_handle is a function
command_not_found_handle ()
{
if [ -x /usr/lib/command-not-found ]; then
/usr/lib/command-not-found -- "$1";
return $?;
else
if [ -x /usr/share/command-not-found/command-not-found ]; then
/usr/share/command-not-found/command-not-found -- "$1";
return $?;
else
printf "%s: command not found\n" "$1" 1>&2;
return 127;
fi;
fi
}
Run Code Online (Sandbox Code Playgroud)
(并且/usr/lib/command-not-found存在,是可执行的,并且是Python脚本.)