"ruby myscript.rb" Works, "./myscript.rb" Doesn't

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.

···

--
Posted via http://www.ruby-forum.com/.

Did you "chmod +x" the script?

···

On 3/9/06, Nathan O. <nathan.olberding@gmail.com> wrote:

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.

--
Posted via http://www.ruby-forum.com/\.

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?

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?

···

On 3/9/06, Michael Gorsuch <michael.gorsuch@gmail.com> wrote:

Did you "chmod +x" the script?

On 3/9/06, Nathan O. <nathan.olberding@gmail.com> wrote:
> 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.
>
> --
> Posted via http://www.ruby-forum.com/\.
>
>

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

···

--
Posted via http://www.ruby-forum.com/\.

wtf?

There isn't any whitespace or blank lines before:

#!/usr/bin/ruby

is there?

···

On 3/9/06, Nathan Olberding <nathan.olberding@gmail.com> wrote:

> 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

--
Posted via http://www.ruby-forum.com/\.

Nathan Olberding 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?

Michael Gorsuch wrote:

wtf?

I'm glad we're on the same page. :slight_smile: 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.

···

--
Posted via http://www.ruby-forum.com/\.

Michael Gorsuch wrote:

wtf?

There isn't any whitespace or blank lines before:

#!/usr/bin/ruby

is there?

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

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

···

On 3/9/06, Nathan Olberding <nathan.olberding@gmail.com> wrote:

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 :slight_smile:

How do I convert it?

···

--
Posted via http://www.ruby-forum.com/\.

Nathan Olberding wrote:

How do I convert it?

Try dos2unix

-M

···

--
Posted via http://www.ruby-forum.com/\.

I saved it using nano and it's working now.

Thanks, all!

···

--
Posted via http://www.ruby-forum.com/.