environ(5) environ(5)
NAME
environ - Benutzer-Umgebung
BESCHREIBUNG
Wenn ein Prozeß mit der Ausführung beginnt, stellen die exec-Routinen
ein Feld von Zeichenketten zur Verfügung, das "Umgebung" genannt wird
[siehe exec(2)]. Konventionen zufolge haben diese Zeichenketten die
Form Variable=Wert, zum Beispiel PATH=/sbin:/usr/sbin. Diese Umge-
bungsvariablen ermöglichen, daß die Informationen zur Umgebung eines
Programms auch Anwendungen zur Verfügung gestellt wird. Die folgenden
Umgebungsvariablen müssen in der Ziel-Laufzeit-Umgebung gesetzt sein:
HOME ist der Name des Login-Verzeichnisses des Benutzers und
wird vom login(1) der Paßwortdatei gesetzt [siehe
passwd(4)].
LANG ist die Zeichenkette, die verwendet wird, um lokale Infor-
mationen anzugeben, die Benutzern erlauben, mit verschiede-
nen nationalen Konventionen zu arbeiten. Die Funktion
setlocale(3C) verwendet die Umgebungsvariable LANG, wenn
sie mit "" als locale-Argument aufgerufen wird. LANG wird
als Standardvereinbarung für die lokale Umgebung verwendet,
wenn die zugehörige Umgebungsvariable für eine bestimmte
Kategorie nicht gesetzt ist.
Wenn zum Beispiel setlocale als
setlocale(LCCTYPE, "")
aufgerufen wird, wird zuerst die Umgebungsvariable LCCTYPE
abgefragt, um zu sehen, ob sie gesetzt und ungleich Null
ist. Wenn LCCTYPE nicht gesetzt oder Null ist, überprüft
setlocale die Umgebungsvariable LANG, um festzustellen, ob
diese gesetzt und ungleich Null ist. Wenn beide, LANG und
LCCTYPE, nicht gesetzt oder gleich Null sind, wird die
standardmäßig eingestellte lokale C-Umgebung verwendet, um
die Kategorie LCCTYPE zu setzen. Die meisten Kommandos
rufen als erstes
setlocale(LCALL, "")
auf. Dann kann das Kommando mit verschiedenen nationalen
Konventionen verwendet werden, indem einfach die passende
Umgebungsvariable gesetzt wird. Die folgenden Umgebungsva-
riablen werden unterstützt, um jeder Kategorie von
setlocale(3C) zu entsprechen:
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
environ(5) environ(5)
LCCOLLATE
Diese Kategorie gibt die verwendete Sortierfolge an.
Die diesbezüglichen Informationen werden in einer
Datenbank gespeichert, die von dem Kommando
colltbl(1M) erzeugt wird. Diese Umgebungsvariable
beeinflußt strcoll(3C) und strxfrm(3C).
LCCTYPE
Diese Kategorie legt die Klassifikation von Zeichen,
Umwandlung von Zeichen und die Größe von Mehrbyte-
Zeichen fest. Die diesbezüglichen Informationen werden
in einer Datenbank gespeichert, die von dem Kommando
chrtbl(1M) erzeugt wird. Die Standardvereinbarung für
C entspricht der 7-Bit-Zeichenmenge. Diese Umgebungs-
variable wird von ctype(3C), mbchar(3C) und vielen
Kommandos verwendet. Zum Beispiel: cat(1), ed(1),
ls(1) und vi(1).
LCMESSAGES
Diese Kategorie gibt die Sprache an, die von der
Datenbank für Meldungen verwendet wird. Zum Beispiel
kann eine Anwendung eine Datenbank mit französischen
Meldungen und eine andere mit deutschen Meldungen
haben. Datenbanken für Meldungen werden mit dem Komm-
mando mkmsgs(1) erzeugt. Diese Umgebungsvariable wird
von exstr(1), gettxt(1), gettxt(3C) und srchtxt(1)
verwendet.
LCMONETARY
Diese Kategorie spezifiziert die Währungssymbole und
Trennzeichen für eine bestimmte Umgebung. Die diesbe-
züglichen Informationen werden in einer Datenbank
gespeichert, die von dem Kommando montbl(1M) erzeugt
wird. Diese Umgebungsvariable wird von localeconv(3C)
verwendet.
LCNUMERIC
Diese Kategorie gibt die Trennzeichen für Dezimalstel-
len und Tausenderstellen an. Die diesbezüglichen
Informationen werden in einer Datenbank gespeichert,
die von dem Kommando chrtbl(1M) erzeugt wird. Die
Standardvereinbarung für C verwendet . als Trennzei-
chen für Dezimalstellen und kein Zeichen für die Tau-
senderstellen. Diese Umgebungsvariable wird von
localeconv(3C), printf(3S) und strtod(3C) verwendet.
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98
environ(5) environ(5)
LCTIME
Diese Kategorie spezifiziert Datums- und Zeitformate.
Die diesbezüglichen Informationen werden in einer
Datenbank gespeichert, die in LCTIME(4) angegeben
ist. Die Standardvereinbarung für C entspricht den
Datums- und Zeitformaten der USA. Diese Umgebungsva-
riable wird von vielen Kommandos und Funktionen ver-
wendet. Zum Beispiel: at(1), calendar(1), date(1),
strftime(3C) und getdate(3C).
MSGVERB steuert, welche Komponenten der Standardformate für Meldun-
gen fmtmsg auswählt, wenn Meldungen auf stderr ausgegeben
werden [siehe fmtmsg(1) und fmtmsg(3C)].
SEVLEVEL vereinbart Fehlerstufen und verbindet Druckformate mit
ihnen im Standard-Fehlerformat [siehe addseverity(3C),
fmtmsg(1) und fmtmsg(3C)].
NETPATH ist eine durch Doppelpunkte getrennte Liste von Netzwerkbe-
zeichnern. Ein Netzwerkbezeichner ist eine Zeichenkette,
die von der Netzwerkauswahl-Komponente des Systems verwen-
det wird, um anwendungsspezifische Standardsuchpfade für
Netzwerke zur Verfügung zu stellen. Ein Netzwerkbezeichner
muß aus Zeichen ungleich Null bestehen und muß mindestens
die Länge 1 haben. Es ist keine maximale Länge festgelegt.
Netzwerkbezeichner werden meistens von dem Systemverwalter
gewählt. Ein Netzwerkbezeichner ist auch das erste Feld in
jedem /etc/netconfig-Dateieintrag. NETPATH stellt also eine
Verbindung zu der Datei /etc/netconfig und die Informatio-
nen über ein Netzwerk, das in dem Netzwerkeintrag enthalten
ist, zur Verfügung. /etc/netconfig wird vom Systemverwalter
gewartet. Die in getnetpath(3N) beschriebenen Bibliotheks-
routinen greifen auf die Umgebungsvariable NETPATH zu.
NLSPATH enthält eine Reihe von Schablonen, die catopen(3C) beim
Versuch, Meldungskataloge zu lokalisieren, verwendet. Jede
Schablone besteht aus einem optionalen Präfix, einem oder
mehreren Ersetzungsfeldern, einem Dateinamen und einem
optionalen Suffix.
NLSPATH="/system/nlslib/%N.cat"
legt fest, daß catopen nach allen Meldungskatalogen in dem
Verzeichnis /system/nlslib suchen soll, wobei der Name des
Katalogs aus dem Parameter Name, der von catopen übergeben
wird, also %N, sowie aus dem Suffix .cat zusammengesetzt
werden soll.
Seite 3 Reliant UNIX 5.44 Gedruckt 11/98
environ(5) environ(5)
Die Ersetzungsfelder bestehen aus einem %, gefolgt von
einem Schlüsselwort aus einem Buchstaben. Die folgenden
Schlüsselwörter sind zur Zeit definiert:
%N Der Wert des Parameters Name, der an catopen() überge-
ben wurde.
%L Wert von LANG.
%l Sprachelement von LANG.
%t Ortselement von LANG.
%c Codeliste-Element von LANG.
%% Ein einziges %-Zeichen.
Es wird eine leere Zeichenkette eingesetzt, wenn der ange-
gebene Wert zur Zeit nicht definiert ist. Die Trennzeichen
und . werden in %t- und %c-Ersetzungen nicht eingeschlos-
sen.
In NLSPATH definierte Schablonen werden durch Doppelpunkte
getrennt. Ein führender Doppelpunkt oder zwei benachbarte
Doppelpunkte :: bedeuten dasselbe wie die Angabe von %N.
NLSPATH=":%N.cat:/nlslib/%L/%N.cat"
zeigt catopen an, daß es in Name, Name.cat und
/nlslib/$LANG/Name.cat nach dem verlangten Meldungskatalog
suchen soll.
PATH Die Folge von Verzeichnis-Präfixen, die sh(1), time(1),
nice(1), nohup(1), usw. bei der Suche nach einer Datei mit
einem unvollständigen Pfadnamen verwenden. Die Präfixe wer-
den durch Doppelpunkte getrennt. login(1) setzt
PATH=/usr/bin [siehe sh(1)].
TERM ist die Art des Terminals, für das die Ausgabe vorbereitet
werden muß. Diese Informationen werden von Kommandos wie
vi(1) verwendet, die besondere Fähigkeiten des Terminals
nutzen.
Seite 4 Reliant UNIX 5.44 Gedruckt 11/98
environ(5) environ(5)
TZ enthält Informationen über die Zeitzone. Der Inhalt dieser
Umgebungsvariablen wird von den Funktionen ctime(3C),
localtime [siehe ctime(3C)], strftime(3C) und mktime(3C)
verwendet, um die Standard-Zeitzone zu überschreiben. Wenn
das erste Zeichen von TZ ein Doppelpunkt ist, wird das Ver-
halten von der Implementierung definiert, sonst hat TZ die
Form:
std offset [dst [offset],[start[/time],end[/time]]]
std und dst enthalten drei oder mehr Bytes für die Bezeich-
nung der Standard-Zeitzone (std) und der Sommerzeitzone
(dst). Nur std ist notwendig. Wenn dst fehlt, erscheint die
Sommerzeit nicht in dieser Umgebung. Klein- und Großbuch-
staben sind erlaubt. Alle Zeichen außer einem führenden
Doppelpunkt, Ziffern, einem Komma, einem Minuszeichen oder
einem Pluszeichen sind erlaubt.
offset zeigt den Wert an, der zur Ortszeit addiert werden
muß, um zur universalen Bezugszeit zu gelangen. Der Offset
hat folgende Form:
hh [:mm [:ss]]
Die Minuten (mm) und Sekunden (ss) sind optional. Die
Stunde (hh) ist notwendig und kann aus einer einzelnen Zif-
fer bestehen. Der offset nach std ist notwendig. Wenn kein
offset nach dst folgt, wird die Sommerzeit als eine Stunde
vor der Standardzeit angenommen. Es können eine oder meh-
rere Ziffern verwendet werden, der Wert wird immer als eine
Dezimalzahl interpretiert. Die Stunde muß zwischen 0 und 24
liegen, und die Minuten und Sekunden (soweit angegeben)
zwischen 0 und 59. Werte außerhalb dieser Bereiche können
zu unvorhersehbarem Verhalten führen. Wenn ein - am Anfang
steht, ist die Zeitzone östlich vom Nullmeridian; sonst ist
sie westlich davon (was auch durch ein optionales + Zeichen
angezeigt werden kann).
start/time, end/time zeigen an, wann zur Sommerzeit und
wann wieder zurück gewechselt werden soll, wobei start/time
beschreibt, wann der Wechsel von der Standardzeit zur Som-
merzeit und end/time, wann der Wechsel zurück stattfindet.
Jedes time-Feld beschreibt, wann der Wechsel vorgenommen
wird.
Seite 5 Reliant UNIX 5.44 Gedruckt 11/98
environ(5) environ(5)
Die Formate von start und end haben eine der folgenden For-
men:
Jn Der Tag n (1 <= n <= 365) nach dem Julianischen
Kalender; Tage, die nur in Schaltjahren auftreten,
werden nicht gezählt. Also ist jedes Jahr der 28.
Februar Tag 59 und der 1. März Tag 60. Es ist
unmöglich, sich auf den gelegentlichen 29. Februar
zu beziehen.
n von Null beginnender Tag (0 <= n <= 365) nach dem
Julianischen Kalender; Tage, die nur in Schaltjah-
ren auftreten, werden gezählt, und es ist möglich,
sich auf den 29. Februar zu beziehen.
Mm.n.d Der Tag d (0 <= d <= 6) der Woche n des Monats m
des Jahres (1 <= n <= 5, 1 <= m <= 12), wobei Woche
5 "der letzte d-Tag im Monat m" bedeutet, der ent-
weder in der vierten oder fünften Woche auftreten
kann). Woche 1 ist die erste Woche, in der der d-
Tag auftritt. Tag 0 ist Sonntag.
Für start und end werden implementierungsspezifische Stan-
dardwerte angenommen, wenn diese optionalen Felder nicht
angegeben werden.
time hat dasselbe Format wie offset, außer daß kein Vorzei-
chen (- oder +) erlaubt ist. Der Standard, wenn time nicht
angegeben ist, ist 02:00:00.
Weitere Namen können durch das Kommando export und Argumente Name=Wert
in sh(1) oder durch exec(2) in die Umgebung eingebaut werden. Es ist
nicht sehr ratsam, mit Shell-Variablen in Konflikte zu geraten, die
häufig von .profile-Dateien exportiert werden: MAIL, PS1, PS2, IFS
[siehe profile(4)].
SIEHE AUCH
cat(1), date(1), ed(1), fmtmsg(1), login(1), ls(1), nice(1), nohup(1),
sh(1), sort(1), time(1), vi(1), chrtbl(1M), colltbl(1M), mkmsgs(1M),
montbl(1M), exec(2), addseverity(3C), catopen(3C), ctime(3C),
ctype(3C), fmtmsg(3C), getdate(3C), gettxt(3C), localeconv(3C),
mbchar(3C), mktime(3C), strcoll(3C), strftime(3C), strtod(3C),
strxfrm(3C), getnetpath(3N), printf(3S), LCTIME(4), netconfig(4),
passwd(4), profile(4), timezone(4).
Handbuch "Leitfaden für Programmierer: Internationalisierung - Lokali-
sierung".
Seite 6 Reliant UNIX 5.44 Gedruckt 11/98