I am trying to make a simple ruby script. However, when I run it, the command line opens, and closes almost immediately. I had the same problem with a visual basic console application, so I’m not sure if this is a problem with command prompt.
I am running Windows 8 with Ruby 1.9.3. Any help is appreciated.
This is a common symptom when developing command line applications on Windows, especially when using IDEs.
The correct way to solve the problem is to open the command line prompt or PowerShell manually, navigate to the directory where the program is located and execute it manually via the command line:
This is how command line programs were designed to be executed from the start. When you run your code from an IDE, it opens a terminal and tells it to execute your program. However, once your program has finished executing, the terminal has nothing to do anymore and thus closes.
However, if you open the terminal, then you the one telling it what to do, not the IDE, and thus the terminal expects more input from you even after the program has finished. It doesn’t close because you haven’t told it to close.
You can also use this workaround at the end of your Ruby script:
This will read a line from standard input and discard it. It prevents your program, and thus the terminal, from finishing until you’ve pressed return.
Similar workarounds can be used in any language such as C and C++, but I don’t think they are solving the actual problem.
However, don’t let this discourage you! Feel free to use
getswhile you are learning. It’s a really convenient workaround and you should use it.Just be aware that these kinds of hacks aren’t supposed to show up in production code.