On Mon, 24 Oct 2005, cygwin.20.maillinglist wrote:

> Hi folks
>
> I have the problem that I like to use read -u to read from file.
> The following script was stored under $HOME/bin/h
> ----------------------------------
> #!/bin/bash
> set -xv
> ls -l $HOME/bin/h
> 3<$HOME/bin/h
>
> while read -u 3
> do
>   echo $REPLY
> done
> ----------------------------------
> The output of a run is
>
> ----------------------------------
> ls -l $HOME/bin/h
>  3:  ls -l /cygdrive/c/home/bin/h
> -rwx------+ 1 F.Braunbeck Domänen-Benutzer 101 Oct 24 17:52 
> /cygdrive/c/home/bin/h
> 3<$HOME/bin/h
>
> while read -u 3
> do
>   echo $REPLY
> done
>  6:  read -u 3
> /cygdrive/c/home/bin/h: line 6: read: 3: invalid file descriptor: Bad file 
> descriptor
> ---------------------------------
>
> How can I get it work so that no "Bad file descriptor" error comes out

Read the bash man page on input redirection.  This is not how you redirect
input in the current bash process.  Using

exec 3<"$HOME/bin/h"
while read -u 3; do echo $REPLY; done

works just fine for me.  Note that you may want to quote $HOME...
        Igor
-- 
                                http://cs.nyu.edu/~pechtcha/
      |\      _,,,---,,_                [EMAIL PROTECTED]
ZZZzz /,`.-'`'    -.  ;-;;,_            [EMAIL PROTECTED]
     |,4-  ) )-,_. ,\ (  `'-'           Igor Pechtchanski, Ph.D.
    '---''(_/--'  `-'\_) fL     a.k.a JaguaR-R-R-r-r-r-.-.-.  Meow!

If there's any real truth it's that the entire multidimensional infinity
of the Universe is almost certainly being run by a bunch of maniacs. /DA
--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

Reply via email to