Ich habe hier gelesen , dass der Zweck von exportin einer Shell ist, die Variable für Unterprozesse verfügbar zu machen, die von der Shell aus gestartet wurden.
Ich habe jedoch auch hier und hier gelesen , dass "Prozesse ihre Umgebung von ihren Eltern erben (dem Prozess, der sie gestartet hat)".
Wenn dies der Fall ist, warum brauchen wir export? Was vermisse ich?
Sind Shell-Variablen standardmäßig nicht Teil der Umgebung? Was ist der Unterschied?
set -kist so, dass mancmd ENVVAR=valueanstelle von verwenden kannENVVAR=value cmd, dass es in Ihrem Beispiel nur funktioniert, wennset -kes vor dem Aufrufen ausgeführt wurdef. Außerdem wird es heutzutage nicht mehr von vielen Shells unterstützt und nur aus Gründen der Abwärtskompatibilität mit der Bourne-Shell. In der Bourne- (oder Korn-) Shell würde das für Funktionen nicht funktionieren. Und da es die Shell-Analyse beeinflusst, muss es zu dem Zeitpunkt in Kraft sein, an dem die Shell den Code liest , der ihn dort verwendet.