I've set everything up that I need on my Mac (Ruby, Rails, Homebrew, Git, etc), and I've even written a small program. Now, how do I execute it in Terminal? I wrote the program in Redcar and saved it as a .rb, but I don't know how to execute it through Terminal. I want to run the program and see if it actually works. How do I do this?
-
72I don't know who voted down your very first question, but I think that's harsh so I've voted it back up. Good luck with everything, it all seems so confusing at first but persevere and before long it'll be second nature, and then you'll be helping out other people on here.ian– ian2012年01月04日 05:00:04 +00:00Commented Jan 4, 2012 at 5:00
-
19Fast forward to 2017 and now the OP has 2,555 points and over 100 badges. :)Daniel– Daniel2017年10月23日 12:55:01 +00:00Commented Oct 23, 2017 at 12:55
-
I love the positive energy, but we've proved the point. Agreed that our community needs to be supportive to newcomers and to anyone needing support to learn a new skill.Hebron Watson– Hebron Watson2023年10月12日 12:51:49 +00:00Commented Oct 12, 2023 at 12:51
10 Answers 10
Just call: ruby your_program.rb
or
- start your program with
#!/usr/bin/env ruby
, - make your file executable by running
chmod +x your_program.rb
- and do
./your_program.rb some_param
-
2When I call ruby your_program.rb, I get this: ruby: No such file or directory -- testapp.rb (LoadError)Tom Maxwell– Tom Maxwell2012年01月04日 02:53:50 +00:00Commented Jan 4, 2012 at 2:53
-
1@TomMaxwell When he says
ruby your_program.rb
, you are supposed to substitute 'your_program.rb' with whatever the name is of your program. In this case, based on your error message, it is probably supposed to beruby testapp.rb
. Though @Robin is correct in that you need to be in the same directory as the Ruby file.Joshua Cheek– Joshua Cheek2012年01月04日 04:11:02 +00:00Commented Jan 4, 2012 at 4:11 -
3I think he did, otherwise the error message would not be about testapp.rb. But based on his other comments, he didn't know how to
cd
to his Desktop directory, so that must be it.Robin– Robin2012年01月04日 04:17:21 +00:00Commented Jan 4, 2012 at 4:17 -
1how about if there're some require in .rb file?LiangWang– LiangWang2015年04月01日 23:50:20 +00:00Commented Apr 1, 2015 at 23:50
-
1@Chris Page, I actually had this problem by using the first way. I changed mod as you suggested and it worked! Thanks a ton!nstein– nstein2015年06月14日 08:08:39 +00:00Commented Jun 14, 2015 at 8:08
Open your terminal and open folder where file is saved.
Ex /home/User1/program/test.rb
- Open terminal
cd /home/User1/program
ruby test.rb
format or test.rb
class Test
def initialize
puts "I love India"
end
end
# initialize object
Test.new
output
I love India
-
2
Class
should beclass
(with a lower c). Otherwise it won't work.DanielH– DanielH2017年11月10日 09:11:40 +00:00Commented Nov 10, 2017 at 9:11 -
-
I love Philippines! hahaAdrian Gaile Singh– Adrian Gaile Singh2024年08月08日 10:54:39 +00:00Commented Aug 8, 2024 at 10:54
Assuming ruby interpreter is in your PATH (it should be), you simply run
ruby your_file.rb
-
That gives me an error message, so I'm guessing I did something wrong during setup. How do I do that?Tom Maxwell– Tom Maxwell2012年01月04日 02:54:36 +00:00Commented Jan 4, 2012 at 2:54
-
ruby: No such file or directory -- testapp.rb (LoadError)Tom Maxwell– Tom Maxwell2012年01月04日 03:07:24 +00:00Commented Jan 4, 2012 at 3:07
-
what's a testapp.rb? Are you in the same dir where it is?Sergio Tulentsev– Sergio Tulentsev2012年01月04日 03:09:08 +00:00Commented Jan 4, 2012 at 3:09
-
I think what you said about the ruby interpreter being in my PATH is the issue. I probably didn't do something correctly; it took me a lot of messing around to get everything set up.Tom Maxwell– Tom Maxwell2012年01月04日 03:09:47 +00:00Commented Jan 4, 2012 at 3:09
-
2
cd
is a terminal command that changes current directory. For example, to go to a "Desktop" dir that is in your HOME_DIR, you'd have to docd ~/Desktop
.Sergio Tulentsev– Sergio Tulentsev2012年01月04日 03:21:32 +00:00Commented Jan 4, 2012 at 3:21
To call ruby file use : ruby your_program.rb
To execute your ruby file as script:
start your program with
#!/usr/bin/env ruby
run that script using
./your_program.rb param
- If you are not able to execute this script check permissions for file.
-
Generally to execute a script, you need to give execute permission. If that is not given, it would not work with above command. Check your permissions and then use the same command.Priti Biyani– Priti Biyani2017年05月04日 17:44:41 +00:00Commented May 4, 2017 at 17:44
Just invoke ruby XXXXX.rb
in terminal, if the interpreter is in your $PATH variable.
( this can hardly be a rails thing, until you have it running. )
For those not getting a solution for older answers, i simply put my file name as the very first line in my code.
like so
#ruby_file_name_here.rb
puts "hello world"
You can run ruby code just passing -e
option
ruby -e 'x = Time.now; puts x;'
Output will be:
2022年06月22日 15:55:06 +0500
Although its too late to answer this question, but still for those guys who came here to see the solution of same problem just like me and didn't get a satisfactory answer on this page, The reason is that you don't have your file in the form of .rb extension. You most probably have it in simple text mode. Let me elaborate. Binding up the whole solution on the page, here you go (assuming you filename is abc.rb or at least you created abc):
Type in terminal window:
cd ~/to/the/program/location
ruby abc.rb
and you are done
If the following error occurs
ruby: No such file or directory -- abc.rb (LoadError)
Then go to the directory in which you have the abc file, rename it as abc.rb Close gedit and reopen the file abc.rb. Apply the same set of commands and success!
In case someone is trying to run a script in a RAILS environment, rails provide a runner to execute scripts in rails context via
rails runner my_script.rb
More details here: https://guides.rubyonrails.org/command_line.html#rails-runner
Open Terminal
cd to/the/program/location
ruby program.rb
or add #!/usr/bin/env ruby
in the first of your program (script tell that this is executed using Ruby Interpreter)
Open Terminal
cd to/the/program/location
chmod 777 program.rb
./program.rb