用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):