rpm check script problem

Dan Track dan.track at gmail.com
Tue Oct 10 08:29:12 UTC 2006


On 10/9/06, Steven W. Orr <steveo at syslang.net> wrote:
> On Monday, Oct 9th 2006 at 11:58 -0400, quoth Tony Nelson:
>
> =>At 11:46 PM +0800 10/9/06, ???? wrote:
> =>
> =>>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
> =>
> =>>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.
> =>
> =>According to the Wikipedia link
> =>
> =>    exec 9<$filename
> =>
> =>seems more likely.
>
> We still don't know what the goal is. All we have is a something that the
> author thought should do what he wants but doesn't work.
>
> Look, exec 9< $filename will redirect $filename to stdin for the duration
> of the process. exec < $filename 9<&0 will do the same thing but will save
> the value of descriptor zero for the purpose of restoration. It's all a
> question of what you want to do.
>

Hi All,

Many thanks for heads up.

The script I pasted in was merely a sanity check, in order to check my
understanding. I thought at the time that the data from the file
"filename" will be stored in fd9 however when I ran the script it
wouldn't work according to that.

I'm a little bit confused it seems as though some people are saying that
exec 9<&0 < $filename  means that the rest of the script will be
dealing with fd9, but other people are saying that I will be dealing
with fd0 throughout the script. Which ones right?

Thanks
Dan




More information about the fedora-list mailing list