In Bash wird das Zuweisen von Werten zu Variablen mit T=content
durchgeführt, ohne Leerzeichen vor oder nach dem Gleichheitszeichen.
Trotzdem habe ich folgendes in einem Shell-Skript PWD= /bin/pwd
gesehen, das ein Leerzeichen auf der rechten Seite des Gleichheitszeichens enthält.
Was hat der Zweck davon ein Leerzeichen?
Im Beispiel PWD= /bin/pwd
wird die Variable PWD
auf den leeren String gesetzt, bevor der Befehl /bin/pwd
ausgeführt wird. Die Änderung wird nur für diese Zeile wirksam.
Dies kann nützlich sein, um eine temporäre Änderung an einer Variablen vorzunehmen, um einen Befehl auszuführen, ohne den ursprünglichen Wert zu beeinflussen. Ein anderes Beispiel wäre die Verwendung von read
, um eine andere IFS
:
Dies setzt das Feldtrennzeichen auf ein Komma, so dass a
, b
und c
korrekt gelesen werden. Nach dieser Zeile wird IFS
auf den Standardwert zurückgesetzt, so dass der Rest des Skripts nicht betroffen ist.
Vielleicht wird auf einigen Systemen die Ausgabe des Befehls pwd
durch den Wert der Variablen PWD
beeinflusst, wodurch verhindert wird, dass Probleme, die durch PWD
verursacht werden, an anderer Stelle überschrieben werden.
Diese Syntax weist der Variablen PWD
für die Dauer des Befehls pwd
den leeren Wert zu.
Dies weist PWD
für den Rest des Skripts zu.
Dies weist PWD
nur für die Dauer des Befehls pwd
zu; Der echo
gibt den Wert wieder, der vor und nach dem pwd
Aufruf aktiv war.
Dies weist einfach den leeren Wert PWD
zu.