简体   繁体   中英

How come when I run ruby.exe / IRB all I get is a blank DOS shell?

I installed ruby 1.9.1p243 (2009-07-16 revision 24175) [i386-mingw32] on my Windows XP laptop.

When I run ruby.exe I get a blank DOS Shell window. No expected "irb(main):001:0>" at the top left of the command prompt. I can type into the shell but, any code I type in actually does anything when pressing enter.

I should mention that I can start IRB from the cmd.exe DOS shell and it functions perfectly. Additionally I have the System Variables path set to c:\\ruby\\bin so I know that is ok.

Any ideas what could be going wrong and how to fix it?

ruby.exe != irb.bat

irb is a batch file that runs ruby.exe as an interactive shell. It actually passes a file called "irb" (no extension) as the parameter. You want to be running irb.

More precisely, running ruby by itself still gives you a ruby interpreter, but you'll miss these features of IRB: The interactive prompt with line editing, immediate execution, and automatic printing of the result.

For example:

C:\> ruby
puts "hello"
"test string"

Press Ctrl+Z and then Enter . It outputs

hello

Ctrl+Z send an "end of file" signal to the interpreter. Unlike IRB, it doesn't consume input one line at a time by default, so it waited to output "hello". The "test string" wasn't displayed at all.

PS Conversely, you can also pass the name of a file to IRB (just irb hello.rb ), and it will run it as if you typed it in, displaying each line of code and the result as it goes.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM