Ich habe - wahrscheinlich im Usenet Mitte der neunziger Jahre (!) - das Konstrukt aufgegriffen
export var=value
ist ein Bashismus, und das ist der tragbare Ausdruck
var=value
export var
Ich befürworte dies seit Jahren, aber kürzlich hat mich jemand dazu herausgefordert, und ich kann wirklich keine Dokumentation finden, die meine früheren festen Überzeugungen bestätigt.
Googeln für "export: command not found" scheint keine Fälle , in denen tatsächlich jemand dieses Problem hatte. Selbst wenn es echt ist, ist es nicht sehr häufig.
(Die Treffer, die ich bekomme, scheinen Neulinge zu sein, die Interpunktion kopieren / einfügen und am Ende mit 'export: command not foundoder einigen solchen gelandet sind oder versuchen, exportmit zu verwenden sudo; und Neulingcsh versuchen, die Bourne-Shell-Syntax zu verwenden.)
Ich kann mit Sicherheit sagen, dass es unter OS X und unter verschiedenen Linux-Distributionen funktioniert, einschließlich derjenigen, in denen es sich shbefindet dash.
sh$ export var=value
sh$ echo "$var"
value
sh$ sh -c 'echo "$var"' # see that it really is exported
value
In der heutigen Welt kann man das mit Sicherheit sagen export var=value es sicher ist, es zu benutzen?
Ich würde gerne verstehen, was die Konsequenzen sind. Wenn es nicht portabel zu Version 7 "Bourne classic" ist, ist das kaum mehr als eine Kleinigkeit. Wenn es Produktionssysteme gibt, in denen die Shell mit dieser Syntax wirklich nicht zurechtkommt, wäre es hilfreich, dies zu wissen.
busyboxmit einer eigenen minimalen Schale? (Ich bin nicht in der Lage, es in dieser Sekunde richtig zu versuchen.)