Por que o bash precisa do && para fazer o eco de uma variável em uma linha?

8

Por que SOMETHING=1 && echo $SOMETHING precisa de && para retornar 1
Por que não SOMETHING=1 echo $SOMETHING return 1

    
por Joel 30.04.2015 / 22:32

2 respostas

6

Porque o bash faz uma expansão de variável antes de interpretar instruções de atribuição de variáveis. Então, como ALGUMA COISA não foi definida anteriormente, seu comando se torna…

SOMETHING=1 echo ''

… então é executado.

    
por 30.04.2015 / 22:45
0

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 idiota xD

root@kali:~# echo ${SOMETHING=1} ${PLUS=+} ${SUMTHIN=2} ${EQUALS==} && expr $SOMETHING $PLUS $SUMTHIN
1 + 2 =
3
root@kali:~# 
    
por 15.08.2015 / 01:20