Não, isso não acontece.
Em $((expression))
, expressão é tratada como se estivesse nas aspas duplas, como POSIX especificado .
Mas cuidado que a expressão dentro de substituição de comando ainda estará sujeita a split+glob
:
$ printf '%d\n' "$(( $(IFS=0; a=10; echo $a) + 1 ))"
2
Com aspas duplas:
$ printf '%d\n' "$(( $(IFS=0; a=10; echo "$a") + 1 ))"
11
Como outras expansões, a expansão aritmética, se não estiver entre aspas duplas, sofre split+glob
:
$ IFS=0
$ echo $((10))
1