
Por que SOMETHING=1 && echo $SOMETHING
precisa &&
retornar 1
Por que não SOMETHING=1 echo $SOMETHING
retorna1
Responder1
Porque o bash faz expansão de variáveis antes de interpretar instruções de atribuição de variáveis. Então, como ALGO não foi definido anteriormente, seu comando passa a ser…
SOMETHING=1 echo ''
… então é executado.
Responder2
exportar e ecoar ao mesmo tempo
root@kali:~# echo ${SOMETHING=1}
1
root@kali:~# echo $SOMETHING
1
root@kali:~# unset SOMETHING
root@kali:~# echo $SOMETHING
root@kali:~# echo ${SOMETHING=1}
1
root@kali:~#
Outro exemplo mais bobo xD
root@kali:~# echo ${SOMETHING=1} ${PLUS=+} ${SUMTHIN=2} ${EQUALS==} && expr $SOMETHING $PLUS $SUMTHIN
1 + 2 =
3
root@kali:~#
Responder3
Você precisa avaliar a variável posteriormente (depois de atribuída). Usar, por exemplo,
SOMETHING=1 eval 'echo $SOMETHING'
para evitar a propagação de SOMETHING
.