perusing o'reilly's "bash pocket reference" for all of the little
bash tips and tricks i'd never heard of, and ran across this WRT file
descriptors; apparently, bash supports assignment of a new file
descriptor to a named variable, while giving that new fd the next
available open fd number from 10 and up.

  example:

$ echo foo {foofd}> /tmp/foo.out
foo
$

what the above apparently does is that it still echoes "foo" to
stdout, but as a side effect, it opens a new file descriptor (in this
case, 10), i guess associated with the output file /tmp/foo.out.

  there's nothing *in* /tmp/foo.out, but i can see the new fd value:

$ echo ${foofd}
10
$

at this point, it seems i can write into the output file /tmp/foo.out
with:

$ echo test1 >&10
$ cat /tmp/foo.out
test1
$

but it would make more sense to be able to use the named fd, would it
not? however, it doesn't appear i can do this:

$ echo test2 >&{foofd}
$ cat /tmp/foo.out
test1
$

  so there was no error, but that seemed to have no effect. however,
if i treat it as a variable (which i suspect i'm supposed to):

$ echo test2 >&${foofd}
$ cat /tmp/foo.out
test1
test2
$

it *appends* to the file, which is not what i was expecting.

  can anyone clarify the proper use of this construct, and
particularly if they use it on a regular basis for something useful?

rday

-- 

========================================================================
Robert P. J. Day                                 Ottawa, Ontario, CANADA
                        http://crashcourse.ca

Twitter:                                       http://twitter.com/rpjday
LinkedIn:                               http://ca.linkedin.com/in/rpjday
========================================================================
_______________________________________________
Linux mailing list
[email protected]
http://oclug.on.ca/mailman/listinfo/linux

Reply via email to