-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
 
Or am I doing (or expecting?) something wrong?

I've boiled my script down quite a bit to isolate the behavior. The
code is at the bottom.

Ignore the output for LIST in the this, I was also trying to isolate a
problem with that not behaving the way I expect, but while isolating
the proble with TYPE, I actually eliminated the problem with LIST. If
I can reproduce the LIST problem maybe I'll send another question later.

This is the output I get with the OpenSolaris ksh93:

[kmcdon...@galileo] 297> ./Test1.sh
        :TYPE=None  :LIST=Zero:
Main    :TYPE=None  :LIST=Zero:
Func1   :TYPE=None  :LIST=Zero:
Func1   :TYPE=RIGHT :LIST=Zero:
Func2   :TYPE=RIGHT :LIST=Zero:
Func2   :TYPE=WRONG!:LIST=Zero One:
Func2   :TYPE=WRONG!:LIST=Zero One:
Func2   :TYPE=WRONG!:LIST=Zero One Two:
Func1   :TYPE=WRONG!:LIST=Zero One Two:
Main    :TYPE=WRONG!:LIST=Zero One Two:
        :TYPE=WRONG!:LIST=Zero One Two:

However I expected to see what bash and /bin/ksh (88??) give below:
(/export/Install/src/bin)
[kmcdon...@galileo] 298>bash ./Test1.sh
        :TYPE=None  :LIST=Zero:
Main    :TYPE=None  :LIST=Zero:
Func1   :TYPE=None  :LIST=Zero:
Func1   :TYPE=RIGHT :LIST=Zero:
Func2   :TYPE=RIGHT :LIST=Zero:
Func2   :TYPE=WRONG!:LIST=Zero One:
Func2   :TYPE=RIGHT :LIST=Zero One:
Func2   :TYPE=WRONG!:LIST=Zero One Two:
Func1   :TYPE=RIGHT :LIST=Zero One Two:
Main    :TYPE=RIGHT :LIST=Zero One Two:
        :TYPE=RIGHT :LIST=Zero One Two:
(/export/Install/src/bin)
[kmcdon...@galileo] 299>ksh ./Test1.sh
        :TYPE=None  :LIST=Zero:
Main    :TYPE=None  :LIST=Zero:
Func1   :TYPE=None  :LIST=Zero:
Func1   :TYPE=RIGHT :LIST=Zero:
Func2   :TYPE=RIGHT :LIST=Zero:
Func2   :TYPE=WRONG!:LIST=Zero One:
Func2   :TYPE=RIGHT :LIST=Zero One:
Func2   :TYPE=WRONG!:LIST=Zero One Two:
Func1   :TYPE=RIGHT :LIST=Zero One Two:
Main    :TYPE=RIGHT :LIST=Zero One Two:
        :TYPE=RIGHT :LIST=Zero One Two:

Here's the code. Shouldn't the 'typeset TYPE' in Func2 make TYPE a
local variable for that function only? I expected it to hide the
global TYPE, but it shouldn't change the global TYPE, should it?

(/export/Install/src/bin)
[kmcdon...@galileo] 300>cat Test1.sh
#!/bin/ksh93
TYPE="None  "
LIST="Zero"

Main()
  {
    echo "Main    :TYPE=${TYPE}:LIST=${LIST}:"
    Func1 "$...@}"
    echo "Main    :TYPE=${TYPE}:LIST=${LIST}:"
  }

Func1()
  {
    echo "Func1   :TYPE=${TYPE}:LIST=${LIST}:"
    TYPE="RIGHT "

    echo "Func1   :TYPE=${TYPE}:LIST=${LIST}:"
    Func2 One
    Func2 Two
    echo "Func1   :TYPE=${TYPE}:LIST=${LIST}:"
  }

Func2()
  {
    echo "Func2   :TYPE=${TYPE}:LIST=${LIST}:"
    LIST="${LIST} ${1}"
    typeset TYPE="WRONG!"
    echo "Func2   :TYPE=${TYPE}:LIST=${LIST}:"
  }

echo "        :TYPE=${TYPE}:LIST=${LIST}:"
Main "$@"
echo "        :TYPE=${TYPE}:LIST=${LIST}:"


Am I nuts?

Thanks!

 -Kyle

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.14 (MingW32)
 
iQEcBAEBAgAGBQJM2tNjAAoJEEADRM+bKN5w3JkIAKfgT4XUKwmkYpEBTIqLFyCw
pwMC2Ok3yeC+n/RvWx9G+9cXjvVEQxY0JbhCBgEIiNNKd5zyrHrPwCdJIloj3m4m
AxME7lwtrK2gzGOtwrCQwdihdaUh9fBGuvY2aG1AecEdJEbfuyt0hA7xIBTCcKXr
ZgmIJjzXj5zSKnhhaBrsaSo0A/y0CJfR5IQvswofAIwpns1U6Z2iy2rynQs+uV74
5xDyYyyc/PQaz+UWlSq3ONx1WC7P18jzOjGrnb9qKihQObugxSDkwNiHfVknrkFF
a5B+XaqOn7eskB7ZGTpGpd7kklqGEJtzz6C6aypFr4WPW9zkIT5z342zgzfnLBU=
=+LV5
-----END PGP SIGNATURE-----

_______________________________________________
ast-users mailing list
[email protected]
https://mailman.research.att.com/mailman/listinfo/ast-users

Reply via email to