From: merch-redmine@... Date: 2020-06-11T20:31:58+00:00 Subject: [ruby-core:98747] [Ruby master Feature#16952] Kernel.exec gives an incorrect error message when passed a script with a non-existing shebang 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-linux]) 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 `
' -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 behavior, 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�guez) * 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 `
' -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 ``` -- https://bugs.ruby-lang.org/ Unsubscribe: