Also some expansions, like ${array[*]:num}, have an issue when the first
character of IFS is not whitespace:
$ IFS=:; A=(1 2); a=${A[*]} b=${A[*]:0}; printf '<%s>' "$a" "$b"
<1:2><1 2>
I put together a script (attached) to test the invariance of the interp 888
expansion rules under transformations of varying exoticness. It produces
diff output that I think might help identifying/debugging such issues. Perhaps
some of it could be useful for the test suite.
@@ -61,24 +61,20 @@ IFS=':'
printf '%s\n' "${a[*]:0}"
jkl:def ghi:abc
var=${a[*]:0}; printf '%s\n' "$var"
-jkl:def ghi:abc
+jkl def ghi abc
exp9_variations.sh
Description: Bourne shell script
