---
name: "irb2.1"
section: "1"
platform: "linux"
package: "ruby2.1"
version: "2.1.5-2+deb8u3"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/irb2.1"
---

# irb2.1(1)

Interactive Ruby Shell

## NAME

**irb** – Interactive Ruby Shell

## SYNOPSIS

**irb** \[**--version**\] \[**-dfm**\] \[**-I** *directory*\] \[**-r** *library*\] \[**--**\[no\]inspect\] \[**--**\[no\]readline\] \[**--prompt** *mode*\] \[**--prompt-mode** *mode*\] \[**--inf-ruby-mode**\] \[**--simple-prompt**\] \[**--noprompt**\] \[**--tracer**\] \[**--back-trace-limit** *n*\] \[**--irb\_debug** *n*\] \[**--**\] \[program\_file\] \[argument ...\]

## DESCRIPTION

**irb** is the REPL(read-eval-print loop) environment for Ruby programs.

## OPTIONS

- **--version**

  Prints the version of **irb**.

- **-E** *external*\[:*internal*\]

  - **--encoding** *external*\[:*internal*\]

  Same as \`ruby -E' . Specifies the default value(s) for external encodings and internal encoding. Values should be separated with colon (:).

  You can omit the one for internal encodings, then the value (Encoding.default\_internal) will be nil.

- **-I** *path*

  Same as \`ruby -I' . Specifies $LOAD\_PATH directory

- **-U**

  Same as \`ruby -U' . Sets the default value for internal encodings (Encoding.default\_internal) to UTF-8.

- **-d**

  Same as \`ruby -d' . Sets $DEBUG to true.

- **-f**

  Suppresses read of *~/.irbrc*.

- **-h**

  - **--help**

  Prints a summary of the options.

- **-m**

  Bc mode (load mathn, fraction or matrix are available)

- **-r** *library*

  Same as \`ruby -r'. Causes irb to load the library using require.

- **--inspect**

  Uses \`inspect' for output (default except for bc mode)

- **--noinspect**

  Doesn't use inspect for output

- **--readline**

  Uses Readline extension module.

- **--noreadline**

  Doesn't use Readline extension module.

- **--prompt** *mode*

  - **--prompt-mode** *mode*

  Switch prompt mode. Pre-defined prompt modes are \`default', \`simple', \`xmp' and \`inf-ruby'.

- **--inf-ruby-mode**

  Uses prompt appropriate for inf-ruby-mode on emacs. Suppresses --readline.

- **--simple-prompt**

  Makes prompts simple.

- **--noprompt**

  No prompt mode.

- **--tracer**

  Displays trace for each execution of commands.

- **--back-trace-limit** *n*

  Displays backtrace top *n* and tail *n*. The default value is 16.

- **--irb\_debug** *n*

  Sets internal debug level to n (not for popular use)

## ENVIRONMENT

- IRBRC

  Also **irb** depends on same variables as [ruby(1)](/ruby/1.md).

## FILES

- *~/.irbrc*

  Personal irb initialization.

## EXAMPLES

```
% irb
```

```
irb(main):001:0> 1 + 1
```

```
2
```

```
irb(main):002:0> def t(x)
```

```
irb(main):003:1> x+1
```

```
irb(main):004:1> end
```

```
=> nil
```

```
irb(main):005:0> t(3)
```

```
=> 4
```

```
irb(main):006:0> if t(3) == 4
```

```
irb(main):007:1> p :ok
```

```
irb(main):008:1> end
```

```
:ok
```

```
=> :ok
```

```
irb(main):009:0> quit
```

```
%
```

## SEE ALSO

[ruby(1)](/ruby/1.md).

## REPORTING BUGS

Security vulnerabilities should be reported via an email to⟨security@ruby-lang.org⟩. Reported problems will be published after being fixed.

And you can report other bugs and feature requests via the Ruby Issue Tracking System (http://bugs.ruby-lang.org). Do not report security vulnerabilities via the system because it publishes the vulnerabilities immediately.

## AUTHORS

Written by Keiju ISHITSUKA.
