Noob: How to make my script executable on unix?

Hey All,

At a bash prompt, if I say 'which ruby', I get back
'/opt/csw/bin/ruby'.

So I write a 2-line test script (test.rb):
  #!/opt/csw/bin/ruby
  puts("It works!")

And I do a 'chmod +x test.rb'.

But when I thereafter say 'test.rb', bash comes back with:
  bash: ./test.rb: bad interpreter: No such file or directory

What am I doing wrong?

Thanks!

-Roy

rpardee@gmail.com wrote:

Hey All,

At a bash prompt, if I say 'which ruby', I get back
'/opt/csw/bin/ruby'.

So I write a 2-line test script (test.rb):
  #!/opt/csw/bin/ruby
  puts("It works!")

And I do a 'chmod +x test.rb'.

But when I thereafter say 'test.rb', bash comes back with:
  bash: ./test.rb: bad interpreter: No such file or directory

What am I doing wrong?

Are you sure it can not be a CR/LF problem (or some other trailing invisible stuff)? This is probably the most frequent cause of this problem (e.g. when moving the script from win32 to linux - but since I guess you are on linux only - well, I don't know)

Otherwise, what you are doing seems fine to me...

Cheers,
Peter

···

__
http://www.rubyrailways.com

Hah--right you are--thanks! I'm actually on solaris, but writing my
script on windows (ultraedit) and saving to a samba share. Ultraedit
has a 'DOS -> Unix' conversion, but it doesn't seem to affect the
executability of my script. :frowning: But if I write the same lines to a new
file in pico, then it works.

Thanks!

-Roy

Peter Szinek wrote:

···

rpardee@gmail.com wrote:
> Hey All,
>
> At a bash prompt, if I say 'which ruby', I get back
> '/opt/csw/bin/ruby'.
>
> So I write a 2-line test script (test.rb):
> #!/opt/csw/bin/ruby
> puts("It works!")
>
> And I do a 'chmod +x test.rb'.
>
> But when I thereafter say 'test.rb', bash comes back with:
> bash: ./test.rb: bad interpreter: No such file or directory
>
> What am I doing wrong?
Are you sure it can not be a CR/LF problem (or some other trailing
invisible stuff)? This is probably the most frequent cause of this
problem (e.g. when moving the script from win32 to linux - but since I
guess you are on linux only - well, I don't know)

Otherwise, what you are doing seems fine to me...

Cheers,
Peter

__
http://www.rubyrailways.com