-# Simulate BSD `which` like on Mac OS X which doesn't use exit codes.
-function which() {
- echo Mac OS X which for $1 >&2
+# which with proper exit codes and output to stderr in case of an error.
+which() {
+ if [ $1 = ls ]; then
+ echo /bin/ls
+ else
+ echo no doesnt-exist in /usr/bin /bin /usr/sbin /sbin >&2
+ return 1
+ fi
+}
+echo stderr which
+installed ls && echo ls installed
+installed doesnt-exist && echo doesnt-exist installed
+
+# which with no proper exit codes and output to stdout in case of an error.
+which() {