On Thu, Nov 08, 2018 at 01:15:56AM -0500, Great Big Dot wrote: > Description: > The builtin array variable FUNCNAME (which provides a way to trace the > stack of functions called so far) appears to be unset according to certain > bash expansions, even when it isn't. If the following code is saved to a > file and executed (this doesn't work at the command line), the problems > begin to appear: > > printf -- '%q\n' "${FUNCNAME}" > printf -- '%q\n' "${FUNCNAME[0]}" > printf -- '%q\n' "${FUNCNAME[*]}"
I don't see any functions there. From the manual: FUNCNAME [...] This variable exists only when a shell function is executing. Assignments to FUNCNAME have no effect. If FUNCNAME is unset, it loses its special properties, even if it is subsequently reset. Since your example doesn't show a function being defined or called, I would expect it to show only empty strings. Also, as a side note, "${x}" and "${x[0]}" are always the same. Literally always. Doesn't matter what type of variable x is (or isn't).