24.02.2013 Aufrufe

Einf ¨uhrung in UNIX - CIS

Einf ¨uhrung in UNIX - CIS

Einf ¨uhrung in UNIX - CIS

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

2.5 Shells 87<br />

{<br />

<strong>in</strong>t i;<br />

for (i = 0; envp[i] != NULL; i++)<br />

pr<strong>in</strong>tf("%s\n", envp[i]);<br />

return 0;<br />

}<br />

Programm 2.5 : C-Programm zur Anzeige der Umgebung<br />

Die Umgebung ist e<strong>in</strong> Array of Str<strong>in</strong>gs namens envp, dessen Inhalt genau<br />

das ist, was set auf den Bildschirm br<strong>in</strong>gt. In der for-Schleife werden die<br />

Elemente des Arrays sprich Zeilen ausgegeben, bis das Element NULL erreicht<br />

ist. Statt die Zeilen auszugeben, kann man sie auch anders verwerten.<br />

2.5.1.3 Umlenkung<br />

Beim Aufruf e<strong>in</strong>es Kommandos oder Programmes lassen sich E<strong>in</strong>- und Ausgabe<br />

durch die Umlenkungszeichen < und > <strong>in</strong> Verb<strong>in</strong>dung mit e<strong>in</strong>em Filenamen<br />

<strong>in</strong> e<strong>in</strong>e andere Richtung umlenken. Beispielsweise liest das Kommando<br />

cat(1) von std<strong>in</strong> und schreibt nach stdout. Lenkt man E<strong>in</strong>- und Ausgabe<br />

um:<br />

cat < <strong>in</strong>put > output<br />

so liest cat(1) das File <strong>in</strong>put und schreibt es <strong>in</strong> das File output. Das<br />

E<strong>in</strong>lesen von std<strong>in</strong> oder dem File <strong>in</strong>put wird beendet durch das Zeichen<br />

EOF (End Of File) oder control-d. Etwaige Fehlermeldungen ersche<strong>in</strong>en<br />

nach wie vor auf dem Bildschirm, stderr ist nicht umgeleitet. Doppelte Pfeile<br />

zur Umlenkung der Ausgabe veranlassen das Anhängen der Ausgabe an<br />

e<strong>in</strong>en etwa bestehenden Inhalt des Files, während der e<strong>in</strong>fache Pfeil das File<br />

von Beg<strong>in</strong>n an beschreibt:<br />

cat < <strong>in</strong>put >> output<br />

Existiert das File noch nicht, wird es <strong>in</strong> beiden Fällen erzeugt.<br />

Die Pfeile lassen sich auch zur Verb<strong>in</strong>dung von File-Deskriptoren verwenden.<br />

Beispielsweise verb<strong>in</strong>det<br />

command 2>&1<br />

den File-Deskriptor 2 (<strong>in</strong> der Regel stderr) des Kommandos command<br />

mit dem File-Deskriptor 1 (<strong>in</strong> der Regel stdout). Die Fehlermeldungen von<br />

command landen im selben File wie die eigentliche Ausgabe. Lenkt man noch<br />

stdout um, so spielt die Reihenfolge der Umlenkungen e<strong>in</strong>e Rolle. Die E<strong>in</strong>gabe<br />

command 1>output 2>&1

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!