用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/