0
파이프의 출력을 적극적으로 처리하려고합니다. 예를 들어 대화 형 콘솔이있는 서버를 호스팅하는 경우 출력을 실시간으로 처리하고 처리하는 방법은 무엇입니까?루비 : 파이프 출력을 적극적으로 처리합니다.
파이프의 출력을 적극적으로 처리하려고합니다. 예를 들어 대화 형 콘솔이있는 서버를 호스팅하는 경우 출력을 실시간으로 처리하고 처리하는 방법은 무엇입니까?루비 : 파이프 출력을 적극적으로 처리합니다.
Best practices with STDIN in Ruby?에서 멋진 설명을 찾을 수 있습니다.
당신은
$ ./bash_script.sh | ./ruby_script.rb
출력됩니다
ABCDE
OIIAUSD
같은
#!/bin/bash
echo "abcde"
sleep 2
echo "oiiausd"
sleep 2
같은 스크립트를 먹이 주어진 다음의
#!/usr/bin/env ruby
ARGF.each_line do |line|
puts line.upcase
end
을 수행 할 수 있습니다 0
그러나 입력 스트림 처리가 예상대로 작동하지 않으면 IO 버퍼링 및 처리가 필요할 수 있습니다.
또한 ARGF-magic을 사용하면 ./ruby_script.rb LOGFILE.log
(파이프없이) 같은 로그 파일을 사용할 수 있다는 이점이 있습니다.
무엇보다 콘솔? 네트워크 연결? – tadman
나는'line_in = STDIN.read do ... end' 라인을 따라 뭔가를해야한다고 생각한다. 아마도 당신은 달성하고자하는 것을 더 잘 설명 할 수있는 몇 가지 테스트 "코드"(bash 스크립트)를 제공 할 수 있습니다. – Felix
잠깐 기다려주십시오. 서버 입력을 제공하거나 출력 또는 둘 모두를 처리 하시겠습니까? 질문을 개선하고 예제를 제공해주십시오. – Felix