2012-07-21 6 views
13

Ich habe einige Zeit mit der Suche nach den POSIX standard for the shell für die source und . Befehle verbracht und bin zu diesem Zeitpunkt überzeugt, dass sie einfach nicht da sind.Ist der Quellcode der Shell der POSIX-Standard?

Gibt es Schalen, die die . nicht unterstützen? Was ist die POSIX-Standardmethode zum Ausführen eines Shell-Skripts in der aktuellen Umgebung (d. H., Keine Subshell erzeugt, also, wenn das Skript sagt export VAR=value dann VAR in der aufrufenden Shell existiert)?

Ich könnte etwas offensichtlich fehlt, aber es stellt sich heraus, dass . bei Google nicht sehr einfach ist ...

+0

Die C-Shell-Familie von Shells unterstützt wahrscheinlich '.' nicht als Synonym für' source', was ihre native Art ist, die gleiche Operation zu schreiben. –

Antwort

13

Es ist dort unter "dot".

BEZEICHNUNG

dot - Ausführen von Befehlen in der aktuellen Umgebung

SYNOPSE

. Datei

[etc.]

+2

Ja, der '.' Befehl ist Standard. Beachten Sie jedoch, dass der Alias ​​'source', der in bash und einigen anderen modernen Shells verfügbar ist, * nicht * Teil von POSIX ist. –

14

. standardisiert (POSIX 2004, 2008).

source ist Nicht-Standard und speziell unterstützt nicht in ash, dash oder pdksh (so wahrscheinlich ist es nicht in der ursprünglichen Korn Shell entweder). Das heißt, es ist ein Bashismus.

+2

Die C-Shell verwendete 'source' anstelle des' '', das von der Bourne-Shell verwendet wurde. Die Korn-Shell verwendete '.', um mit der Bourne-Shell kompatibel zu sein. Es wurde aus Gründen, die nicht klar sind, in 'bash' importiert, aber es macht C-Shell-Migranten zu Hause und ist leichter zu indexieren als' .' [dot] (http://pubs.opengroup.org/onlinepubs/9699919799) /utilities/V3_chap02.html#dot). –

Verwandte Themen