
Warum SOMETHING=1 && echo $SOMETHING
muss ich &&
zurückkehren? 1
Warum kehrt ich nicht SOMETHING=1 echo $SOMETHING
zurück ?1
Antwort1
Weil Bash eine Variablenerweiterung durchführt, bevor Variablenzuweisungsanweisungen interpretiert werden. Da also ETWAS zuvor nicht definiert wurde, wird Ihr Befehl zu …
SOMETHING=1 echo ''
…wird dann ausgeführt.
Antwort2
Export und Echo gleichzeitig
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:~#
Noch ein dämlicheres Beispiel xD
root@kali:~# echo ${SOMETHING=1} ${PLUS=+} ${SUMTHIN=2} ${EQUALS==} && expr $SOMETHING $PLUS $SUMTHIN
1 + 2 =
3
root@kali:~#
Antwort3
Sie müssen die Variable später auswerten (nachdem sie zugewiesen wurde). Verwenden Sie beispielsweise
SOMETHING=1 eval 'echo $SOMETHING'
um die Ausbreitung von zu verhindern SOMETHING
.