Use a better name to avoid matching against ~/.rubies/foo.
Use (( )) for arthimetic expressions (@zendeavor).
Prefer $(< ...) over $(cat ...) (@zendeavor).
Use != as it is available on Bash 3 (@havenwood).
Make sure $RUBY_ROOT is quoted. (@zendeavor)
Quote the String used in the fuzzy match. (@zendeavor)
Use ${path##*/} instead of basename. (@zendeavor)
Use ${path%/*} instead of dirname. (@zendeavor)
Use $(...) instead of back-ticks. (@zendeavor)
Quoting more arguments.
Quote arguments.
Avoid calling the same command twice.
Directly test the exit status of the command. (@zendeavor)
Use the POSIX `command -v` function instead of type/which. (@havenwood)
Use read -r instead of $(cat ...) to avoid forking. (@zendeavor)
Export all TEST variables and move them into helper.sh.

* Set HOME in helper.sh.
* Renamed PROJECT_DIR to TEST_PROJECT_DIR.
* Use __shunit_tmpDir in the $PATH tests.
More aggressive quoting of arguments, even $SHELL.
Switch back to sourcing test/helper.sh for sub-shells.
Lowercase all non-global variables.
Use printf for safely printing \e escapes and variables.