2014-01-19 3 views
5

다음 예제와 같은 Ruby 스크립트를 작성했습니다. 나는 그것이 내가 원하는 솔루션을 인쇄 스크립트를 실행할 때Ruby : 스크립트 실행 후 콘솔 열기

# get input from the user 
input = gets.chomp 
# do awesome stuf with this input and print the response 
puts do_awesome_stuff(input) 

문제이지만, 콘솔 창은 직후 종료 : 기본 기능은 동일합니다. 콘솔을 열고 싶습니다. 현재 Windows에 있지만 솔루션이 모든 시스템에서 작동해야합니다.

한 가지 방법은 너무처럼 .bat 파일과 루비 스크립트를 실행하고 일시 정지하는 것입니다

ruby script.rb 
PAUSE 

내가 추가 .bat 파일이없는 방법이 있기를 바랍니다. Ruby에는 PASUE와 같은 기능이 통합되어 있습니까?

답변

7

루비 스크립트 파일을 두 번 클릭 한 것처럼 보입니다.

대신 cmd 쉘에서 다음 명령을 실행하십시오.

ruby filename.rb 

원하지 않는 경우 gets을 스크립트 끝에 추가 할 수 있습니다.

# get input from the user 
input = gets.chomp 
# do awesome stuf with this input and print the response 
puts do_awesome_stuff(input) 
gets # <---- 

당신이 cmd를 쉘 또는 터미널에서 명령을 실행할 경우 쉘로 돌아를 입력 추가 입력해야 .. 기 때문에이 권장되지 않습니다.

+0

나는 끝에 "gets"가있는 솔루션을 좋아한다. "Enter를 사용하여 스크립트 종료"와 같은 문장을 추가 할 것입니다. 그런 다음 사용자는 자신이해야 할 일을 알고 있습니다. – ph3nx

+0

@ PascalGläser, 중간에'exit'를 호출하면'gets' 해결책이 작동하지 않습니다. 또한 예외가 발생하면 작동하지 않습니다. 오류 추적이 표시되지 않습니다. – falsetru

+0

@ PascalGläser, 일반적으로 다른 명령 행 프로그램은 사용자가 종료하기 전에 입력 대기를 사용하지 않습니다. 이렇게하면 프로그램을 다른 명령 행 프로그램과 결합하기가 어려워집니다. (리디렉션, 파이프 등의 쉘 기능에 대해 생각해보십시오 ...) – falsetru

관련 문제