From: A LeDonne Date: 2006-05-19T03:22:58+09:00 Subject: Re: Command Line Processing / Pipes On 5/18/06, Stuart Holden wrote: > Hi Chris, > > Sorry, I forgot about 'cat' being a non-standard cmd. It's on this > machine as part of Cygwin. The one liner you gave me works great. It can > accept filenames as arguments and STDIN via a pipe. Howerver, what I am > going to be doing is too complex for a one line script so I will need to > put it in a .rb file. I thought the equivalent of the '-n -e "print"' > one liner would be: > > while gets() > print > end > > but, when I put this in a file called parser.rb and try > > type input.txt | parser.rb > > I get the following: > > The process tried to write to a nonexistent pipe. > c:/scripts/parser.rb:1:in `gets': Bad file descriptor > (Errno::EBADF) > from c:/scripts/parser.rb:1 > > Thanks, > Stu > What happens if you do: type input.txt | ruby parser.rb ? I think the point may be that you have to call the ruby interpreter explicitly, rather than relying on windows file associations to do the right thing when there's a pipe involved. -A