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

Reply via email to