Issue #16952 has been updated by jeremyevans0 (Jeremy Evans).

Backport deleted (2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN)
ruby -v deleted (ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-lin=
ux])
Tracker changed from Bug to Feature

When I run your example in my shell (OpenBSD ksh), I get:

```
$ ./myscript.rb
ksh: ./myscript.rb: No such file or directory
$ 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)
```

@Eregon is correct, examining the shebang appears to be a bash-specific beh=
avior, not a general behavior.  So I don't think this qualifies as a bug in=
 Ruby.  It could potentially be a useful feature, though.


----------------------------------------
Feature #16952: Kernel.exec gives an incorrect error message when passed a =
script with a non-existing shebang
https://bugs.ruby-lang.org/issues/16952#change-86105

* Author: deivid (David Rodr=EDguez)
* Status: Open
* Priority: Normal
----------------------------------------
```
$ 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 i=
s clearly there.

I would've expected something more similar to what you get if you try to ru=
n the script directly from the shell:

```
$ ./myscript.rb =

bash: ./myscript.rb: /bad/ruby/shebang: bad interpreter: No such file or di=
rectory
```



-- =

https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=3Dunsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>