From: Robert Klemme Date: 2007-05-31T23:35:11+09:00 Subject: Re: Trouble with system() on SunOS On 31.05.2007 16:03, Galevsky Gal wrote: > Doug Phillips wrote: >>> >>> Insecure world writable dir /teams/com_fqd_dev/tools, mode >>> 040777" messages. >>> >>> What is wrong with that ? The system call does not read the >>> $PATH var ? >>> Why 'echo' ran well ? >> The first echo of $PATH has $PATH surrounded by single quotes; the shell >> will not evaluate $PATH, instead taking it literally. Encapsulate it in >> double quotes (you'll need to escape them so they execute properly), and >> it should work as expected. >> >> irb(main):003:0> system "echo \"$PATH def\"" >> /usr/bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/php/bin:/usr/ccs/b >> in:/usr/local/mysql/bin def >> => true >> >> (The above was run on a Solaris 10 machine) > > LOL, i am not facing a problem with a print of $PATH var, since I know > how to do and did it on the next line, what is wrong is the > execution.... > > > [578] XmlChecker -V > v1.9 > [579] ruby -W0 test.rb > Here is the tool > /projects/fqdbdatamig/tools/prod/bin//XmlChecker > $PATH def > [...]:/projects/fqdbdatamig/tools/prod/bin/:. > [580] > > Well, when I run 'XmlChecker -V' in a shell, it generates the output > 'v1.9'. > When I try to run it through out a ruby script 'system "XmlChecker -V"', > nothing happens, like it was not executed. Is 'Xmlchecker -V' not > executed ? Why ? the $PATH var shows it knows where to find the tool > XmlChecker. > > Thanks for your support, Since you do not need shell interpolation I'd use the array form of system: system "XmlChecker", "-V" Frankly, I am not sure why you are not seeing anything. Maybe it has something to do with output buffering or such. As an alternative you could do p `XmlChecker -V` to see whether there is any output. Another reason why you don't see anything is that XmlChecker might print the version to stderr. To verify do this at a shell prompt XmlChecker -V 2> /dev/null If you do not see the version then it's printed to stderr. Kind regards robert