On Wed, Jul 24, 2019 at 11:43:11AM -0700, L A Walsh wrote: > Those aren't my variables. > If you assign the integer attribute to a variable it isn't the same > as when you don't.
In this case it *is*, because everything is being fed to an arithmetic command anyway. Simplifying the bug report as much as possible lets us avoid confusing and unnecessary diversions. > > The ${str:2*c:2} part is performed first, while c is still 0, and it > > expands to "cf". > > > --- > Why? It isn't even necessary when 'c' is greater than 'uxtra' Because that's how bash works. $((expression)) The expression is treated as if it were within double quotes, but a double quote inside the parentheses is not treated specially. All to‐ kens in the expression undergo parameter and variable expansion, com‐ mand substitution, and quote removal. The result is treated as the arithmetic expression to be evaluated. Arithmetic expansions may be nested.