用Ubuntu的时候,如果你在命令行里输入一个未安装的命令,bash会给出很人性化的提示,让你先安装xxx软件包,比如:
程序 ‘xxx’ 尚未安装。 您可以通过输入以下命令安装:
sudo apt-get install xxx
其实gentoo下也是可以做类似提示的.
gentoo早就已经默认是 bash 4.x 了,这个版本的bash,在找不到命令的时候,会试着调用 command_not_found_handle 这个函数,也就是说,只要你在什么地方定义了这个函数,就可以实现人性化的提示.再联想到之前我整的e-file,一切都是这么简单,哈哈~
在 ~/.bashrc 里加上如下几行:
if echo “`uname -a`“ | grep gentoo >/dev/null ; then
#由于我的.bashrc是ubuntu和gentoo共用的,所以这里还有些gentoo特有的alias…下面几行才是关键.
command_not_found_handle () {
echo “-bash: $1: command not found”
e-file $1
}
else
#ubuntu的alias….
fi
当然,这之前肯定要先安装e-file,如果你已经加了gentoo-china的overlay,可以直接 emerge e-file
最终效果贴个图(我是gnome,没装kdevelop):
来自:http://li2z.cn/2009/07/02/command_not_found_handle/