Brian Candler
2/10/2007 2:57:00 PM
On Sat, Feb 10, 2007 at 10:56:35PM +0900, Lloyd Zusman wrote:
> > This is a shell-internal variable, and not exported by default to processes
> > launched from the shell. But it can be if you wish:
>
> Well, if that were the case, the variable wouldn't be visible within
> irb, either. Since it is, then it must be an exported environment
> variable and not just shell internal.
Well, on my system:
brian@mappit:~$ irb1.8
irb(main):001:0> ENV.size
=> 39
irb(main):002:0> exit
brian@mappit:~$ ruby1.8 -e 'puts ENV.size'
37
brian@mappit:~$ printenv | wc -l
37
brian@mappit:~$
So my guess is that irb is setting these variables itself, or calling some
library which does so (readline perhaps?)
> I think that the problem has to do with how script.rb is being invoked.
> Is it started from something other than a terminal session? ... perhaps
> via a cron job or a startup daemon? If so, then LINES and COLUMNS would
> not normally be set, since those environment variables are usually
> initialized and exported only within an interactive shell.
I thought of that, but all the examples shown above and in my previous reply
were typed into a terminal session.
Regards,
Brian.