I am using Debian sid, which sh is bash. And, in fact, I hate ruby's way of system call. Ugly and hard to use and stupid hardcoded. John Carter wrote: > I have just strace'd weird bug to it's root cause. > > For decades bash was the "sh" of choice for linux systems. > > Then somebody threw some money at the Debian foundation to make Debian > boot faster. > > The solution was to tweak the init scripts to be perfectly POSIX > Lowest Common Denominator "sh" compatible, and then make dash the > default "sh". > > To allow for legacy scripts that expect /bin/sh === /bin/bash you can > sudo dpkg-reconfigure dash > and switch back to sh === bash > > Thus on Debian (and Debian derivatives like Ubuntu) Rubies backtick > (iff there is a glob or a redirection present) is HARDCODED to /bin/sh > but will (depending on the users whim) give you dash or bash. > > For example the &> redirection is a bashism... > ls -l /bin/sh > lrwxrwxrwx 1 root root 4 2008-08-12 16:54 /bin/sh -> dash > build@ws1419:~/AutomatedBuild/test$ ruby -e 'system("ls > NOFILEWITHTHISNAME&>foo")' > ls: cannot access NOFILEWITHTHISNAME: No such file or directory > build@ws1419:~/AutomatedBuild/test$ cat foo > build@ws1419:~/AutomatedBuild/test$ sudo dpkg-reconfigure dash > Removing `diversion of /bin/sh to /bin/sh.distrib by dash' > Removing `diversion of /usr/share/man/man1/sh.1.gz to > /usr/share/man/man1/sh.distrib.1.gz by dash' > build@ws1419:~/AutomatedBuild/test$ ruby -e 'system("ls > NOFILEWITHTHISNAME&>foo")' > build@ws1419:~/AutomatedBuild/test$ cat foo > ls: cannot access NOFILEWITHTHISNAME: No such file or directory > > AAARGH! > > As I always say... if a bug is hard to find... you won't know what to > do with it once you find it. > > > > John Carter Phone : (64)(3) 358 6639 > Tait Electronics Fax : (64)(3) 359 4632 > PO Box 1645 Christchurch Email : john.carter / tait.co.nz > New Zealand > > >