[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: expression evaluation problem
From: |
Greg Wooledge |
Subject: |
Re: expression evaluation problem |
Date: |
Wed, 24 Jul 2019 14:49:43 -0400 |
User-agent: |
Mutt/1.10.1 (2018-07-13) |
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.