# Newbie Basic Command Interpreter Question in Ruby

**URL:** <https://www.ruby-forum.com/t/newbie-basic-command-interpreter-question-in-ruby/83732>\
**Category:** Ruby\
**Created:** [January 29, 2007, 10:41am UTC](https://www.ruby-forum.com/t/newbie-basic-command-interpreter-question-in-ruby/83732 "2007-01-29T10:41:20Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![martignoni-a](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/8491ac/32.png) [@martignoni-a](https://www.ruby-forum.com/u/martignoni-a)\
**Post date:** [January 29, 2007, 10:41am UTC](https://www.ruby-forum.com/t/newbie-basic-command-interpreter-question-in-ruby/83732/1 "2007-01-29T10:41:20Z")

</div>

Hello Folks, i’m a newbie who desires to implement a basic command  
interpreter written in ruby. Let’s say i want to start a new Thread who  
listen to user input

```
p=Thread.new{
puts "thread started"
loop do
  a=gets.chomp

  exit if (a=="quit\n")
  puts a
end

}

```

outputs “thread started” and exits

What i’m i doing wrong? Why the tread doesn’t continue looping but  
exits?  
Sorry for the newbie question, i’m just learning ruby.

Thank you very much for answering

Andrea

---

<div class="post-metadata">

**Author:** ![martignoni-a](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/8491ac/32.png) [@martignoni-a](https://www.ruby-forum.com/u/martignoni-a)\
**Post date:** [January 29, 2007, 11:45am UTC](https://www.ruby-forum.com/t/newbie-basic-command-interpreter-question-in-ruby/83732/2 "2007-01-29T11:45:29Z")

</div>

On 29/01/07, Andrea M. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> ```
> puts a
> 
> ```
> 
> Thank you very much for answering
> 
> Andrea

The p thread is started but the main execution thread (which spawned  
the p thread) exits the interpreter. You need to add a ‘p.join’ at the  
end which will wait for p to finish before continuing.

Farrel
