
¿Por qué es SOMETHING=1 && echo $SOMETHING
necesario &&
regresar? 1
¿Por qué no SOMETHING=1 echo $SOMETHING
regresa?1
Respuesta1
Porque bash realiza una expansión de variables antes de interpretar declaraciones de asignación de variables. Entonces, como ALGO no fue definido previamente, su comando se convierte en…
SOMETHING=1 echo ''
…luego es ejecutado.
Respuesta2
exportar y hacer eco al mismo tiempo
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:~#
Otro ejemplo más tonto xD
root@kali:~# echo ${SOMETHING=1} ${PLUS=+} ${SUMTHIN=2} ${EQUALS==} && expr $SOMETHING $PLUS $SUMTHIN
1 + 2 =
3
root@kali:~#
Respuesta3
Debe evaluar la variable más tarde (después de que se asigne). Utilice, por ejemplo,
SOMETHING=1 eval 'echo $SOMETHING'
para evitar la propagación de SOMETHING
.