I don't think this is a bug, the shell behaves the same way: $ cat test.sh #/bin/asdsadsa #useless script $ ./test.sh; echo $? 0 If the interpreter is not found, the script is passed through sh. - todd