Pourquoi SOMETHING=1 && echo $SOMETHING
faut-il &&
revenir 1
Pourquoi ne SOMETHING=1 echo $SOMETHING
revient pas1
Pourquoi SOMETHING=1 && echo $SOMETHING
faut-il &&
revenir 1
Pourquoi ne SOMETHING=1 echo $SOMETHING
revient pas1
Réponses:
Parce que bash fait l'expansion des variables avant d'interpréter les instructions d'affectation des variables. Donc, puisque QUELQUE CHOSE n'a pas été défini précédemment, votre commande devient ...
SOMETHING=1 echo ''
… Puis exécuté.
exporter et faire écho en même temps
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:~#
Un autre exemple maladroit xD
root@kali:~# echo ${SOMETHING=1} ${PLUS=+} ${SUMTHIN=2} ${EQUALS==} && expr $SOMETHING $PLUS $SUMTHIN
1 + 2 =
3
root@kali:~#