what's going on here? i don't understand why these two functions behave
differently.
$ cat ./nameref
#!/usr/bin/env ksh
set -e
set -u
print ${.sh.version}
function dumpParams # array
{
set -eu
nameref a=$1
shift
nameref v
print '--- works'
for v in "${a[@]}"
do
print "${!v}=$v"
done
print '---'
}
function dumpParams2 # array
{
set -eu
nameref a=$1
shift
nameref v
print '--- doesn'\''t work'
for v in "${a[@]}"
do
print "${!v}" = "$v"
done
print '---'
}
foo=1
bar=2
baz=3
array=(foo bar baz)
dumpParams array
print
dumpParams2 array
$ ./nameref
Version AJM 93u+ 2012-08-01
--- works
foo=1
bar=2
baz=3
---
--- doesn't work
foo = 1
bar = 1
baz = 1
---
$
--
Aaron Davies
[email protected]
_______________________________________________
ast-users mailing list
[email protected]
http://lists.research.att.com/mailman/listinfo/ast-users