sonnenblen.de - Das unabhängige Sun User Forum
Software => Programmieren, Kompilieren => Thema gestartet von: 23r0 am 13. Juni 2009, 21:56:00
-
Hallo,
eine Frage. Habe von einem Kollegen den Paketbau einer Software übernommen. Habe nun festgestellt daß er im postinstall script rege von TMPDIR=$shellscriptstatement gebrauch macht. Er meinte die Ausführung würde Probleme bereiten ohne den TMPDIR= Prefix. Mh - mir begegnet das zum ersten Mal - und ich kann auch nichts gescheites zum Thema im Netz finden. Mir ist der Paketbau Mechanismus (also was da tatsächlich im Hintergrund low-level passiert) nicht bis ins letzte Detail bekannt. Also - kann mir jemand sagen was es mit diesem TMPDIR Dingens auf sich hat? Spontan, auf den ersten Blick, wäre ich der Meinung er setzt immer wieder die Variable TMPDIR neu - ohne tatsächlich das nachfolgende Statement auszuführen, aber anscheinend wird es eben doch ausgeführt?
-
Habe nun festgestellt daß er im postinstall script rege von TMPDIR=$shellscriptstatement gebrauch macht. Er meinte die Ausführung würde Probleme bereiten ohne den TMPDIR= Prefix.
Spontan, auf den ersten Blick, wäre ich der Meinung er setzt immer wieder die Variable TMPDIR neu - ohne tatsächlich das nachfolgende Statement auszuführen, aber anscheinend wird es eben doch ausgeführt?
Ich vermute mal das im konkreten $shellscriptstatement ein Leerzeichen vorhanden ist? Also z.B.
TMPDIR=/tmp mach_was
führt das Statement mach_was aus und setzt in dessen Umgebung die Variable TMPDIR auf /tmp. Im weiteren Verlauf (alle folgenden Statements) hat die Variable ihren vorherigen Wert bzw. gar keinen.
Üblicherweise wird stattdessen die Variable ein Mal exportiert, danach wird sie automatisch in die Umgebung aller aufgerufener Statements vererbt.
TMPDIR=/tmp
export TMPDIR
mach_was