AI Bash 0.2

Project Page.


AI bash is an extension of the ordinary bash which tries to make the bash more intellegent. Since the code is based on the original bash (version 2.0.5) 99% of the code is not written by myself. So thank the programmers of the original bash for that fantastic software, which is also the reason that it was used for this project. The intelligence is based on the following items:

correcting typing errors of command names

this bash tries to correct incorrectly typed program names.
example emcs will be corrected to emacs

correcting typing errors while pressing TAB

this bash can correct typing errors while pressing TAB. It only assumes a typing error if no TAB match could be found. It corrects the following mistakes

missing characters

Assuming it exists a file called /home/heinz/daten/xy.dat /home/heinz/dten/xy will be corrected by pressing TAB to /home/heinz/daten/xy which will be processed by the original completing function afterwards

switched characters

/home/heinz/dtaen/xy will be corrected to /home/heinz/daten

wrong characters

/home/heinz/deten/xy will be corrected to /home/heinz/daten

capitalization errors

/hOme/heinz/daten/xy will be corrected to /home/heinz/daten/xy

missing home directory

daten/xy will be corrected to ~/daten/xy

learning which suffix is associated to which program

Therefore the program creates a file called ~/.aibash.config which contains the information how often a program was called with which suffix. I included my configuration file so you can save time for learning if you just copy it to your home directory. If the program is usually called with files of some special suffixes other files (except directories) are filtered out when pressing TAB. The suffixes of the programs are stored in the file


This program is released under the GNU General Public License Version 2 The extensions to the original bash were written by Tim vor der Brück


This program requires xerces for C++ (tested with xerces-c-src1_7_0) by the apache software foundation, a C++ compiler (e.g. g++) as well as the Standard Template Library (should be included in the c++-package). If you use a different c++-compiler than g++ you must replace g++ in the file ai-bash0.2/lib/readline/aibash/makefile by the name of the c++-compiler you used. Afterwards just switch to the directory ai-bash-0.2. Type ./configure
Type make
You can now start the AIBash just by typing ./bash or by doing the following:
Type make install (not tested yet)
Start the AIBash by typing bash. If you want to speed up the learning of suffix association just copy the file ai-bash0.2/lib/readline/aibash/aibash.config to your home directory. debug information can be turned on by setting the environment variable AB_DEBUG_OUTPUT to TRUE. Please inform me if you have trouble to get this program running!!

Learning algorithm

See aibash for informations about the learning algorithm and error correction


Although this program should already be fully usable (it prints some debug messages though) it is only an alpha version. So I plan to add additional features in the future. I hope this program will be useful. The extensions to the ordinary bash are made by Tim vor der Brück. Any comments to this project are welcome. Send those to