Por que um valor de uma variável não muda dentro de backticks?

1

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 ?

    
por Paul 17.11.2016 / 18:15

2 respostas

4

porque '...' é equivalente a $ (...), que é um subshell. variáveis em mudança no subshell são perdidas quando o subshell se fecha.

    
por 17.11.2016 / 18:18
0

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!

    
por 17.11.2016 / 18:20