rpm check script problem

赵方杰 fuziok at gmail.com
Mon Oct 9 15:46:24 UTC 2006


The line in the script "exec 9<&0 <$filename" means "first copy fd0 to
fd9, then redirect file to fd0", so in the following lines of the
script fd9 is always the stdin.

2006/10/9, Dan Track <dan.track at gmail.com>:
> Hi
>
> I've got a script that should check which rpms are installed on the
> system. Part of the script involves using file descriptors. I'm having
> trouble understanding these file descriptors and was hoping someone
> can clarify my mistake. As a simple script I wrote the following:
>
> #!/bin/bash
> $filename=$1
> $filename1=$2
>
> exec 9<&0 < $filename
> read rpm
> echo -e "file1: "$rpm "\c"
>
> exec 8<&0 < $filename1
> read rpm1
> echo -e "file2: "$rpm1 "\c"
>
> read rpm2 <&9
> echo -e "file1: "$rpm2 "\c"
>
> Now my understanding is that the last read and echo statements should
> print out what is stored in file descriptor "9" however the script
> just hangs on the last read. Is there a reason for this? And how do I
> fix it? I've searched and searched but can't find any reason why this
> shouldn't work.
>
> Thanks
> Dan
>
> --
> fedora-list mailing list
> fedora-list at redhat.com
> To unsubscribe: https://www.redhat.com/mailman/listinfo/fedora-list
>




More information about the fedora-list mailing list