Script help needed...
Gavin McDonald
gavitron at gmail.com
Wed Jan 4 20:08:14 UTC 2006
I'm not sure how bash does it, but in perl the answer would be that your
variable is lexically scoped inside the loop.
Try declaring R at the beginning of the script.
-G
Regards,
Gavin McDonald
========================
EVI Logistic Enterprises
email: me at gavitron.com
phone: (604) 313-3845
> -----Original Message-----
> From: redhat-list-bounces at redhat.com [mailto:redhat-list-
> bounces at redhat.com] On Behalf Of Magnus Andersen
> Sent: Wednesday, January 04, 2006 12:05 PM
> To: General Red Hat Linux discussion list
> Subject: Script help needed...
>
> Hi All,
>
> I'm writing a script that I am going to use to test write data to an nfs
> mount. I'm having problem with a variable. The variable R is set inside
> a
> while loop and it is null outside the loop even after it is set.
>
> Here is a code snippet. I've attached the whole script if anyone would
> like
> to look at the whole thing.
>
> if [ ! -f $PIDFILE ]; then
> touch $PIDFILE
> else
> # Read PIDFILE and determine if script is already running.
> cat $PIDFILE | while read LINE
> do
> if [ -z "$LINE" ]; then
> break
> else
> #Get PID from PIDFILE
> OLDPID=`echo $LINE | awk '{ print $1 }'`
> RUNNING=`ps aux | grep $OLDPID | grep -v grep | wc -l | tr -d
> '
> '`
> if [ $RUNNING = 0 ]; then
> R=0
> else
> (( R = $R + 1 ))
> echo $R
> LOC=`echo $LINE | awk '{ print $2 }'`
> fi
> fi
> done
> fi
> echo "R = $R"
>
> The last echo is null even after R is set inside the loop and I don't
> understand why.
>
> Thanks,
>
> --
> Magnus Andersen
> Systems Administrator / Oracle DBA
> Walker & Associates, Inc.
More information about the redhat-list
mailing list