The manpages for "my" bash's (3.1.11 on Linux and 3.1.17 on cygwin/i686),
under Parameter Expansion, say:
${!prefix*}
[EMAIL PROTECTED]
Expands to the names of variables whose names begin with prefix,
separated by the first character of the IFS special variable.
---
From this, I'd expect both forms to have the same output.
Is this what is intended and what I should expect?
For test purposes, I set:
IFS="<" OFS=">" # (also set "Output" FS to see if it is used
# in the output of 'echo')
---
I used 4 tests, all with prefix=U, 1st pair unquoted, 2nd pair quoted.
input:
echo ' * ' = ${!U*} ; \ # (line 1 - * unquoted)
echo ' @ ' = [EMAIL PROTECTED] ; \ # (line 2 - @ unquoted)
echo '"*"' = "${!U*}" ; \ # (line 3 - * quoted)
echo '"@"' = "[EMAIL PROTECTED]" # (line 4 - @ quoted)
---
output:
* = UID USER # (line 1)
@ = UID USER # (line 2)
"*" = UID<USER # (line 3)
"@" = UID USER # (line 4)
---
QUESTIONS continued...
- If the two forms are supposed to be identical, why aren't lines
3 & 4 the same?
- Why do the quotes in line 3 make for different output than in line
Why aren't the 4 lines identical? I see the IFS, "<" in line 3, but
not in lines 1,2&4. Why isn't it in all 4 lines and, also, even
the double quotes make a difference when expanding variables, why
aren't lines 3&4 the same?
_______________________________________________
Bug-bash mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/bug-bash