From: "nobu (Nobuyoshi Nakada) via ruby-core" Date: 2024-03-29T05:11:23+00:00 Subject: [ruby-core:117372] [Ruby master Bug#20399] Ripper doesn't respect implicit -x Issue #20399 has been updated by nobu (Nobuyoshi Nakada). Shebang makes sense only in an executable script. ```sh $ echo $'#!/bin/sh\np :sh' | ruby ruby: no Ruby script found in input (LoadError) bash: exit 1 $ ruby -e $'#!/bin/sh\np :sh' :sh ``` ---------------------------------------- Bug #20399: Ripper doesn't respect implicit -x https://bugs.ruby-lang.org/issues/20399#change-107530 * Author: kddnewton (Kevin Newton) * Status: Open * Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN ---------------------------------------- For the given script: ```ruby #!/bin/sh # -*- ruby -*- exec "${RUBY-ruby}" "-x" "$0" "$@" && [ ] if false #!ruby # This needs ruby 2.0, Subversion and Git. # As a Ruby committer, run this in an SVN repository # to commit a change. require 'tempfile' require 'net/http' ``` I would expect all of the various Ripper APIs (`lex`, `sexp`, `sexp_raw`, `new.parse`, etc.) to start parsing on line 4, because that's what the parser does. Instead, it starts parsing on line 1. -- https://bugs.ruby-lang.org/ ______________________________________________ ruby-core mailing list -- ruby-core@ml.ruby-lang.org To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org ruby-core info -- https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-core.ml.ruby-lang.org/