the "problem" is backquoting. you can see this clearly by distilling
your example:
; a = ''
; b = `{cat /env/a}
; whatis b
b: not found
; ls -l /env/^(a b)
--rw-rw-rw- e 0 quanstro quanstro 1 Jul 6 19:33 /env/a
--rw-rw-rw- e 0 quanstro quanstro 0 Jul 6 19:33 /env/b
since backquoting always treats '\0' as an ifs character
; x = `{echo -n ''}
is the same as
; x = ()
that is,
; ls -l /env/x
--rw-rw-rw- e 0 quanstro quanstro 0 Jul 6 19:33 /env/x
the only asymmetric thing to me is the fact that
; x = ()
sets /env/x, yet $x throws an error. (byron's rc does the opposite.)
- erik
On Wed Aug 9 05:01:18 CDT 2006, [EMAIL PROTECTED] wrote:
>
> term% b=`{cat /env/a}
> term% xd -c /env/b
> 0000000
> 0000000
> term% b=`{echo $a}
> term% xd -c /env/b
> 0000000
> 0000000
> term% b=`{echo ''} # echo null string
> term% xd -c /env/b
> 0000000
> 0000000
> term%
>
> ??? /env/b is empty ! not same as /env/a