[PLUG] Maybe not so dumb BASH question
Charles Sliger
chaz at bctonline.com
Fri May 6 17:59:01 UTC 2005
I see what you mean. This behavior is clearly at odds with the man page.
The man page states that all variables can be seen by both the function and
the calling script.
"Variables local to the function may be declared with the "local" builtin
command. Ordinarily, variables and their values are shared between the
function and its caller."
This looks like a clear case of a bug to me...
Charles L. Sliger, Information Systems Engineer, chaz at bctonline.com
"no matter where you go, there you are..."
-----Original Message-----
From: plug-bounces at lists.pdxlinux.org
[mailto:plug-bounces at lists.pdxlinux.org] On Behalf Of William A Morita
Sent: Friday, May 06, 2005 10:16 AM
To: 'General Linux/UNIX discussion and help; civil and on-topic'
Subject: RE: [PLUG] Maybe not so dumb BASH question
Charles,
The value of "None" should be overwritten by the value set in the function.
That is if the documentation is correct then TMPFILE is a global variable.
- Bill
wamorita at hevanet.com
-----Original Message-----
From: plug-bounces at lists.pdxlinux.org
[mailto:plug-bounces at lists.pdxlinux.org] On Behalf Of Charles Sliger
Sent: Thursday, May 05, 2005 9:51 PM
To: wamorita at hevanet.com; 'General Linux/UNIX discussion and help;civil and
on-topic'
Subject: RE: [PLUG] Maybe not so dumb BASH question
Works for me.
GNU bash, version 2.05b.0(1) - release (i386-pc-linux-gnu) Running on Ubuntu
5.04
What problems were you seeing?
Charles L. Sliger, Information Systems Engineer, chaz at bctonline.com
"no matter where you go, there you are..."
-----Original Message-----
From: plug-bounces at lists.pdxlinux.org
[mailto:plug-bounces at lists.pdxlinux.org] On Behalf Of William A Morita
Sent: Thursday, May 05, 2005 12:04 PM
To: 'General Linux/UNIX discussion and help; civil and on-topic'
Subject: [PLUG] Maybe not so dumb BASH question
I have written the script below and am puzzled by the fact that the shell
variable TMPFILE is not global in nature.
According to all documentation I can find, it is explicitly stated that with
regard to function, all variables are global unless the "local" keyword is
used.
I am not seeing a global effect when the script below is run on White Box
Linux (Bash 2.05) or Fedora Core 3 (Bash 3.05). Is there a setting I may
have wrong someplace?
==============================
#!/bin/bash
# Script to get unique number using files in a temp directory #
set -x
TMPDIR=~/tmp
function GetNumber
{
set -xv
for n in 0 1 2 3 4 5 6 7 8 9
do
TMPFILE=$TMPDIR/TagFile$n
if [ -f $TMPFILE ]
then
continue
else
touch $TMPFILE
echo $n
trap "rm -f $TMPFILE" INT TERM
exit
fi
done
}
TMPFILE=None
Num=`GetNumber`
echo $Num $TMPFILE
==============================
- Bill
wamorita at hevanet.com
Home: (503) 697-6994
Cell: (503) 260-3876
_______________________________________________
PLUG mailing list
PLUG at lists.pdxlinux.org
http://lists.pdxlinux.org/mailman/listinfo/plug
_______________________________________________
PLUG mailing list
PLUG at lists.pdxlinux.org
http://lists.pdxlinux.org/mailman/listinfo/plug
_______________________________________________
PLUG mailing list
PLUG at lists.pdxlinux.org
http://lists.pdxlinux.org/mailman/listinfo/plug
More information about the PLUG
mailing list