From: Johan Holmberg Date: 2003-09-05T20:47:25+09:00 Subject: Re: [bug] Silent death of "ruby -e" On Fri, 5 Sep 2003 nobu.nokada@softhome.net wrote: > > > > I think that the third line above (marked with a *) should have > > given an error too. > > It seems to depend on the shell. You run mswin or mingw ruby > from cygwin bash, no? > Almost: mswin-Ruby in a tcsh shell. But you are right: it seems like it is the eternal problem with command line parsing and different shells on Windows ... :-( If I (in my tcsh shell) pass the command line marked with (*) in my earlier mail to a C-program I've written for testing purposes I get: $ printargs ruby -e 'puts foo["a"]' argc = 4 argv[0] = 'e:\holmberg\bin\printargs' argv[1] = 'ruby' argv[2] = '-e' argv[3] = 'puts foo["a"]' Here the outermost ' characters are written by "printargs". My "printargs" program prints the value of argc/argv as they are received by a normal C-application on Windows. From this I conclude that Ruby will get a similar set of arguments (shifted down one position when the current argv[0] is removed). To me it seems like Ruby gets a perfeclty valid small Ruby-program as an element of argv: puts foo["a"] Or am I missing something ? I also noticed that this problem is quite new. When I run different versions of Ruby from Andrew Hunts Windows installer I get: $ e:/ruby173-8/bin/ruby -e 'puts xxx["x"]' -e:1: undefined local variable or method `xxx' for [...] $ $ e:/ruby180-10/bin/ruby -e 'puts xxx["x"]' $ Do you know the reason for the change ? /Johan Holmberg