porque '...' é equivalente a $ (...), que é um subshell. variáveis em mudança no subshell são perdidas quando o subshell se fecha.
Aqui está o meu código de teste:
a=1
echo $a
echo 'let ++a'
echo $a
A saída que vejo é 1
, 1
. Por que a terceira linha não modifica o valor de a
?
Você pode incrementar uma variável assim:
a=1
((a++))
echo $a
2
O que é mais como incrementar "estilo C", em vez de:
let a++
Veja a resposta do Ipor Sircer sobre por que seu método não funcionou!