Ruby Programming/Hello world
The classic Hello, world! program is a good way to get started with Ruby.
Hello, world!
editCreate a text file called hello_world.rb
containing the following code:
puts 'Hello, world!'
Now run it at the shell prompt.
$ ruby hello_world.rb Hello, world!
You can also run the short "Hello, world!" program without creating a text file at all. This is called a one-liner.
$ ruby -e "puts 'Hello, world!'" Hello, world!
Option -e
means evaluate (Ruby code). You can run this code with irb, but the output will look slightly different. puts
will print out "Hello, world!
", but irb
will also print out the return value of puts
— which is nil
.
$ irb >> puts "Hello, world!" Hello, world! => nil
Comments
editLike Perl, Bash, Python, and C Shell, Ruby uses the hash symbol (also called Pound Sign, number sign) for comments. Everything from the hash to the end of the line is ignored when the program is run by Ruby. For example, here's our hello_world.rb
program with comments.
# My first Ruby program
# On my way to Ruby fame & fortune!
puts 'Hello, world!'
You can append a comment to the end of a line of code, as well. Everything before the hash is treated as normal Ruby code.
puts 'Hello, world!' # Print out "Hello, world!"
You can also comment several lines at a time:
=begin
This program will
print "Hello, world!".
=end
puts 'Hello, world!'
Although block comments can start on the same line as =begin
, the =end
must have its own line. You cannot insert block comments in the middle of a line of code as you can in C, C++, and Java, although you can have non-comment code on the same line as the =end
.
=begin This program will print 'Hello, world!'
=end puts 'Hello, world!'
Executable Ruby scripts
editTyping the word ruby
each time you run a Ruby script is tedious. To avoid doing this, follow the instructions below.
Unix-like operating systems
editIn Unix-like operating systems – such as Linux, Mac OS X, and Solaris you will want to mark your Ruby scripts as executable using the chmod
command. This also works with the Cygwin version of Ruby.
$ chmod +x hello_world.rb
You need to do this each time you create a new Ruby script. If you rename a Ruby script, or edit an existing script, you do not need to run "chmod +x
" again.
Next, add a shebang line as the very first line of your Ruby script. The shebang line is read by the shell to determine what program to use to run the script. This line cannot be preceded by any blank lines or any leading spaces. The new hello_world.rb
program – with the shebang line – looks like this:
#!/usr/bin/ruby
puts 'Hello world'
If your ruby
executable is not in the /usr/bin
directory, change the shebang line to point to the correct path. The other common place to find the ruby
executable is /usr/local/bin/ruby
.
The shebang line is ignored by Ruby – since the line begins with a hash, Ruby treats the line as a comment. Hence, you can still run the Ruby script on operating systems such as Windows whose shell does not support shebang lines.
Now, you can run your Ruby script without typing in the word ruby
. However, for security reasons, Unix-like operating systems do not search the current directory for executables unless it happens to be listed in your PATH environment variable. So you need to do one of the following:
- Create your Ruby scripts in a directory that is already in your PATH.
- Add the current directory to your PATH (not recommended).
- Specify the directory of your script each time you run it.
Most people start with #3. Running an executable Ruby script that is located in the current directory looks like this:
$ ./hello_world.rb
Once you have completed a script, it's common to create a ~/bin
directory, add this to your PATH, and move your completed script here for running on a day-to-day basis. Then, you can run your script like this:
$ hello_world.rb
Using env
editIf you do not want to hard-code the path to the ruby
executable, you can use the env
command in the shebang line to search for the ruby
executable in your PATH and execute it. This way, you will not need to change the shebang line on all of your Ruby scripts if you move them to a computer with Ruby installed in a different directory.
#!/usr/bin/env ruby
puts 'Hello world'
Windows
editIf you install the native Windows version of Ruby using the Ruby One-Click Installer, then the installer has setup Windows to automatically recognize your Ruby scripts as executables. Just type the name of the script to run it.
$ hello_world.rb Hello world
If this does not work, or if you installed Ruby in some other way, follow these steps.
- Log in as an administrator.
- Run the standard Windows "Command Prompt",
cmd
. - At the command prompt (i.e. shell prompt), run the following Windows commands. When you run
ftype
, change the command-line arguments to correctly point to where you installed theruby.exe
executable on your computer.
$ assoc .rb=RubyScript .rb=RubyScript $ ftype RubyScript="c:\ruby\bin\ruby.exe" "%1" %* RubyScript="c:\ruby\bin\ruby.exe" "%1" %*
For more help with these commands, run "help assoc
" and "help ftype
".