Hello Folks,
I am trying to learn ruby, so i wrote some simple scripts.
But the following script does not work as expected:
#!/usr/bin/ruby
while gets != nil
print $_
end
if i call 'echo.rb' (without any parameters) from my cygwin shell, the
scripts does what i expect it to do. It reads and returns the input.
But if i call it with any parameters, like
echo.rb anything
i get a error message saying : '... `gets': No such file or directory -
12 (Errno::ENOENT)...'
Does anybody understand this ?
Thanx
Joe
···
--
Posted via http://www.ruby-forum.com/.
gets() reads from the files given as command-line arguments, or STDIN, if none were given. So in your example above, "anything" is expected to be the path to a file that will be read.
Just FYI, your example is also a little Perlish. Us Ruby guys generally write that as:
ARGF.each_line do |line|
puts line
end
Hope that helps.
James Edward Gray II
···
On Dec 29, 2005, at 9:18 AM, joe quimby wrote:
Hello Folks,
I am trying to learn ruby, so i wrote some simple scripts.
But the following script does not work as expected:
#!/usr/bin/ruby
while gets != nil
print $_
end
if i call 'echo.rb' (without any parameters) from my cygwin shell, the
scripts does what i expect it to do. It reads and returns the input.
But if i call it with any parameters, like
echo.rb anything
i get a error message saying : '... `gets': No such file or directory -
12 (Errno::ENOENT)...'
Does anybody understand this ?
joe quimby wrote:
Hello Folks,
I am trying to learn ruby, so i wrote some simple scripts.
But the following script does not work as expected:
#!/usr/bin/ruby
while gets != nil
print $_
end
if i call 'echo.rb' (without any parameters) from my cygwin shell, the scripts does what i expect it to do. It reads and returns the input.
But if i call it with any parameters, like
echo.rb anything
i get a error message saying : '... `gets': No such file or directory - 12 (Errno::ENOENT)...'
Does anybody understand this ?
Thanx
Joe
Try this instead:
while input = $stdin.gets
puts input
end
Cheers,
Daniel
Wow that was fast. Thanx a lot
···
--
Posted via http://www.ruby-forum.com/.
joe quimby wrote:
Hello Folks,
I am trying to learn ruby, so i wrote some simple scripts.
But the following script does not work as expected:
#!/usr/bin/ruby
while gets != nil
print $_
end
you could also have said:
#!/usr/bin/ruby
print while gets
if i call 'echo.rb' (without any parameters) from my cygwin shell, the
scripts does what i expect it to do. It reads and returns the input.
But if i call it with any parameters, like
echo.rb anything
i get a error message saying : '... `gets': No such file or directory -
12 (Errno::ENOENT)...'
Does anybody understand this ?
apparently you typed:
echo.rb 12
If there are arguments, ruby interprets those as the names of files to
be used (after concatenation) as standard input. But there was no file '12'
···
On Sat, 31 Dec 2005, Daniel Schierbeck wrote:
--
Wybo