A atribuição pode falhar se a expressão direita não avaliar
por exemplo
$ x=HELLO
$ x=$((1/0))
bash: 1/0: division by 0 (error token is "0")
$ echo $?
1
Neste cenário, o valor de $x
é deixado inalterado:
$ echo $x
HELLO
Fiquei surpreso ao descobrir que a configuração de uma variável de ambiente modificava a última variável de código $?
:
$ false
$ echo $?
1
$ false
$ FOO=BAR
$ echo $?
0
$
O manual do bash diz apenas sobre o $?
:
($?) Expands to the exit status of the most recently executed foreground pipeline.
Onde o código de saída de uma variável está sendo documentado? Pode falhar?
A atribuição pode falhar se a expressão direita não avaliar
por exemplo
$ x=HELLO
$ x=$((1/0))
bash: 1/0: division by 0 (error token is "0")
$ echo $?
1
Neste cenário, o valor de $x
é deixado inalterado:
$ echo $x
HELLO