Forum: Ruby "ruby myscript.rb" Works, "./myscript.rb" Doesn't

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Nathan O. (Guest)
on 2006-03-09 22:35
I have a script. When I run it via "ruby myscript.rb", it works great.
When I run it via "./myscript.rb", it complains:

: No such file or directory.

The top of the file starts with "#!/usr/bin/env ruby", which works for
other scripts in the same directory. I know it's spelled right. And the
file is set executable.

The colon (":") at the start of the error message makes me think it's
looking for a file with no name when it should be looking for my script.
Again, the script works great when run as a param to the "ruby..."
command.
Michael G. (Guest)
on 2006-03-09 22:51
(Received via mailing list)
Did you "chmod +x" the script?
Michael G. (Guest)
on 2006-03-09 22:54
(Received via mailing list)
Sorry.  I just noticed that it is already executable.

What if you use the path straight to the ruby interpreter, and not
/usr/bin/env?
Nathan O. (Guest)
on 2006-03-09 23:03
> What if you use the path straight to the ruby interpreter, and not
> /usr/bin/env?

Very interesting! When I change /usr/bin/env ruby to /usr/bin/ruby
(which is where the binary is), I get:

: bad interpreter: No such file or directory
Michael G. (Guest)
on 2006-03-09 23:09
(Received via mailing list)
wtf?

There isn't any whitespace or blank lines before:

#!/usr/bin/ruby

is there?
Nathan O. (Guest)
on 2006-03-09 23:14
Michael G. wrote:
> wtf?

I'm glad we're on the same page. :-) Now I don't feel so alone!

> There isn't any whitespace or blank lines before:
>
> #!/usr/bin/ruby
>
> is there?

nathan@vm1:~/public_html$ head -1 myscript.rb
#!/usr/bin/ruby
nathan@vm1:~/public_html$

Nada.
(Guest)
on 2006-03-09 23:19
(Received via mailing list)
Whenever I get weird messages like this it always turns out to be a
problem with line endings. By any chance did you last save the file on
a Windows system?
Anthony DeRobertis (Guest)
on 2006-03-09 23:22
(Received via mailing list)
Nathan O. wrote:

> Very interesting! When I change /usr/bin/env ruby to /usr/bin/ruby
> (which is where the binary is), I get:
>
> : bad interpreter: No such file or directory
>

Windows-style line endings?
Jonathan H. (Guest)
on 2006-03-09 23:25
(Received via mailing list)
Michael G. wrote:
>>> /usr/bin/env?
>> Very interesting! When I change /usr/bin/env ruby to /usr/bin/ruby
>> (which is where the binary is), I get:
>>
>> : bad interpreter: No such file or directory

Your script has been on a Windows box or otherwise polluted with a \r
(Carriage return) after ruby?

The kernel can't find /usr/bin/ruby\r

-jonathan
Nathan O. (Guest)
on 2006-03-09 23:29
> Your script has been on a Windows box or otherwise polluted with a \r
> (Carriage return) after ruby?

That's it, that's the one. I had this problem with another script the
other day. It "went away" after I did a whole bunch of stuff. This
must've been it.

2006, and we're still dealing with line endings :-)

How do I convert it?
Mike (Guest)
on 2006-03-09 23:32
Nathan O. wrote:
> How do I convert it?

Try dos2unix

-M
Nathan O. (Guest)
on 2006-03-09 23:36
I saved it using nano and it's working now.

Thanks, all!
This topic is locked and can not be replied to.