You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Use of $ or ${..} on regular variables in arithmetic context is unnecessary, and can even lead to subtle bugs. This is because the content of $((..)) is first expanded into a string, and then evaluated as an expression:
$ a='1+1'
$ echo $(($a * 5)) # becomes 1+1*5
6
$ echo $((a * 5)) # evaluates as (1+1)*5
10
The $ is unavoidable for special variables like $1 vs 1, $# vs #.
It is also required when adding modifiers to parameters expansions, like ${#var} or ${var%-}.
PROBLEMATIC CODE:
echo $(($n + ${arr[i]}))
PREFERRED CODE:
echo $((n + arr[i]))
You can find $/${} is unnecessary on arithmetic variables here:
Use of $ or${..} on regular variables in arithmetic context is unnecessary, and can even lead to subtle bugs. This is because the content of $ ((..)) is first expanded into a string, and then evaluated as an expression:
$ a='1+1'$1 vs 1, $ # vs #.
$ echo $(($a * 5)) # becomes 1+1*5
6
$ echo $((a * 5)) # evaluates as (1+1)*5
10
The $ is unavoidable for special variables like
It is also required when adding modifiers to parameters expansions, like ${#var} or ${var%-}.
PROBLEMATIC CODE:
echo $(($n + $ {arr[i]}))
PREFERRED CODE:
echo $((n + arr[i]))
You can find$/$ {} is unnecessary on arithmetic variables here:
/mainnet/blob/main/shentu-2.2/statesync/state_sync.sh#L13-L13
The text was updated successfully, but these errors were encountered: