Ruby Programming/Hello world

From Wikibooks, open books for an open world
Jump to navigation Jump to search

← Interactive Ruby | Strings →

The classic Hello, world! program is a good way to get started with Ruby.

Hello, world!

[edit | edit source]

Create 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


[edit | edit source]

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

This program will
print "Hello, world!".
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

[edit | edit source]

Typing the word ruby each time you run a Ruby script is tedious. To avoid doing this, follow the instructions below.

Unix-like operating systems

[edit | edit source]

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


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:

  1. Create your Ruby scripts in a directory that is already in your PATH.
  2. Add the current directory to your PATH (not recommended).
  3. 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

[edit | edit source]

If 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'


[edit | edit source]

If 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.

  1. Log in as an administrator.
  2. Run the standard Windows "Command Prompt", cmd.
  3. 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 the ruby.exe executable on your computer.
$ assoc .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".