2013-09-23 3 views
3

편집 : 이것은 배시 명령을 호출 할 때 중복 된 질문으로 표시되었습니다. 나는 프로그래밍에 익숙한 사람이라면 "배쉬 명령어를 호출하는 것"이 ​​HTTP로 리소스를 빠져 나와 다른 프로그램에 출력하는 것과 크게 다르다는 것을 알아야한다. 내가 system을 사용할 수 있습니다 알고Ruby : PIpe URL 내용을 bash 명령

curl http://stackoverflow.com | wc 

하지만, 이상적으로 IO.pipe 또는 이것 저것을 사용하여 순수 루비를 유지하고 싶은 :

사람은 루비에서 이런 종류의 일을 달성하는 방법을 보여주는 예제 코드를 가지고있다.

+0

그 두 가지 질문에 다른 무엇인지 구체적으로 설명하십시오, 나는 이것이 당신은 그들이 다른 말을해서 다시 열 수 있을지는 모르겠 ;-) –

+1

사람들이있는 것처럼 다시 개방에게 그것을 본다. 타이틀에서 아주 분명하기 때문에 프로그래밍에 정통한 사람이 어떻게이 실수를 저지를 수 있는지 보지 못했습니다. 5 명의 개조자는 그것을 확인합니다. "파이프 URL 내용"대 "호출 배쉬 명령". 내가 말할 수있는 가장 관대 한 것은 첫 번째 파일이 "이 파일을 C로 어떻게 읽어야합니까?"라는 "이 질문의 상위 집합체"라는 것입니다. "어떻게 C 프로그램을 작성합니까?" – mahemoff

+1

그러나 "C 프로그램 작성 방법"은 유효한 질문이 아니기 때문에 닫힙니다. 단 하나의 문장 (예 : '다른 질문은 파이프에 대해 묻지 않습니다.')이 있더라도 투표가 얼마나 쉬운 지 믿을 수 없습니다. 나는 * 복제 *가 관련이 없다고 말하기 때문에 * 다시 *를 요구하는 사람들을 싫어합니다 *. 어떠한 경우에도 유효하지 않기 때문에가 아니라 * 아무에게도 그렇게하기 때문에 * 설명하기 쉽습니다. 그래서, 우리에게 호의를 베풀고 * 당신에게 그렇게 명백한 것이 무엇인지 묘사하십시오. 왜냐하면 가까운 사람들이 다른 사람들에게는 거의 명백하지 않다고 말 했어야했기 때문입니다! –

답변

5

Open3::pipeline 방법을 사용하십시오. 예를 들어 :

require 'open3' 

Open3.pipeline(['curl', 'http://stackoverflow.com'], 
       ['wc']) 
+0

확인 됨, 감사합니다. – mahemoff