Kernel.exec gives an incorrect error message when passed a script with a non-existing shebang
$ cat myscript.rb #!/bad/ruby/shebang puts "Hei!" $ ruby -e 'Kernel.exec("myscript.rb")' Traceback (most recent call last): 1: from -e:1:in `<main>' -e:1:in `exec': No such file or directory - myscript.rb (Errno::ENOENT)
From the error, I understand that the script is not there, but the script is clearly there.
I would've expected something more similar to what you get if you try to run the script directly from the shell:
$ ./myscript.rb bash: ./myscript.rb: /bad/ruby/shebang: bad interpreter: No such file or directory