Frage 102-84

Warum sollten Sie in Shellskripten die Umgebungsvariable LANG auf den Wert C setzen?

  1. Für bessere Performance, weil die Shell in C geschrieben ist

  2. Damit keine unvorhergesehenen Umlaute ausgegeben werden

  3. Damit Programme wie ls ein vorhersehbares Ausgabeformat liefern

  4. Damit die Skripte auch in Umgebungen funktionieren, wo de_DE nicht definiert ist

LPI-Lernziel Lokalisierung und Internationalisierung (107.3)

12 Kommentare · Kommentar hinzufügen · RSS

Antwort

Valentin Becker (eingetragen) · 9. Februar 2010, 10:55

Antwort Nr 4 ist richtig:

Damit die Skripte auch in Umgebungen funktionieren, wo de_DE nicht definiert ist.

Das heißt die sie würden auch in Ländern wie die Philippinen funktionieren.

Antwort

MiniMe (Gast) · 9. Februar 2010, 11:21

Das ist falsch!

Ein Skript kann durchaus auch funktionieren, wenn auf dem Zielsystem eine andere Sprache gesetzt ist! Die Namen von Befehlen sind schließlich in jeder Sprache gleich, es wäre auch reiner Wahnsinn, alle Binaries abhängig von der gewählten Sprache umzubenennen! Das Gleiche gilt für Dateinamen und Pfade.

Das einzige was sich durch die Spracheinstellungen ändert ist das Tastaturlayout und die Ausgabe von Befehlen. Problematisch wird es also erst, wenn in einem Skript Ausgaben ausgewertet werden (z.B. mit grep). Daher ist Anwort 1 richtig!

Antwort

MiniMe (Gast) · 9. Februar 2010, 11:23

Upps, natürlich meinte ich Antwort 3! Da hätte ich fast noch mehr Verwirrung gestiftet als mein Vorredner :D

Sry. frage falsch verstanden

Valentin Becker (eingetragen) · 9. Februar 2010, 11:46

Ja du hast recht hatte die frage missverstanden. Sry

Sry. frage falsch verstanden

Anselm Lingnau (eingetragen) · 9. Februar 2010, 11:54

Jetzt muss nur noch jemand kommen, der für die Antwort 2 plädiert, dann haben wir alle Möglichkeiten durch :^)

Tipp: Das Tastaturlayout ändert sich durch eine Zuweisung an LANG übrigens nicht.

Gute Kandidaten, wo man die Auswirkungen von LANG beobachten kann, sind die Kommandos date und ls. Wir können ja mal versuchen, wer mittels LANG dem Kommando ls die meisten Ausgabeformate entlocken kann ... Ich lege »3« vor, wer schafft mehr?

Antwort 3 auch richtig

Jan Schampera (Gast) · 15. Mai 2010, 13:04

A3 ist definitiv auch richtig, wenn auch nicht für alle Skripte/Programme, klar.

Antwort 3 auch richtig

Niels Dettenbach (Gast) · 26. März 2011, 09:44

Also welche ist nun "offiziell" richtig? Die 3?

In der Simulation findet sich bisher keine Erläuterung und die Diskussion ergibt auch keine wirklich eindeutige Antwort... ;)

Cheers,

Niels.

antwort 1 und 4

willy sauerland (eingetragen) · 28. März 2011, 11:42

Doch wie benutzt man nun die bereits übersetzten Programme? Die Steuerung der gewünschten Sprache erfolgt über eine Umgebungsvariable. Wenn Sie nach der Installation keine Veränderungen an Ihrem System vorgenommen haben, so sollte die Variable LANG den Wert C haben: Damit wird die Sprache Englisch verwendet. Sie können den Wert der Variablen mit dem Kommando echo auf der Kommandozeile prüfen. .. ich tendiere zu 4 !!!!!

antwort 1 und 4

Anselm Lingnau (eingetragen) · 28. März 2011, 13:05

Um das hier mal zu Ende zu bringen: Die richtige Antwort ist natürlich die 3. 1 und 2 sind ziemlich offensichtlicher Unfug, und die 4 ist irrelevant, denn das Schlimmste, das passieren kann, wenn LANG einen Wert hat, für den keine Locale-Daten installiert sind, ist, dass sowieso »C« bzw. »POSIX« als Rückfallwerte angenommen werden.

Warum die 3 die richtige Antwort ist, sollte jedem klar werden, der mal versucht hat, unter wechselnden Locales reproduzierbar das Datum aus der Ausgabe von ls -l zu holen.

antwort 1 und 4

Chris (Gast) · 23. Mai 2012, 20:32

Noch mehr durcheinander? Antwort 3 ist laut Simulator falsch...

.

Friedl (Gast) · 8. Juli 2012, 16:11

Hallo zusammen,

Antwort 2. ist richtig "Damit keine unvorhergesehenen Umlaute ausgegeben werden".

Quelle ist das Buch LPIC-1 von Peer Heinlein. Zitat: "LANG=C setzt die Lokalisierung aller Tools auf Englisch, so dass stets ein einheitlicher Output generiert wird, egal unter welcher Spracheinstellung das Skript später ausgeführt wird." (Seite 225 - Frage 92)

.

Anselm Lingnau (eingetragen) · 10. Juli 2012, 09:26

Hast Du die vorhergehende Diskussion gelesen?

Wichtig

LPI-Logo

Die LPI Academy ist keine offizielle Webseite des LPI!

Sponsor

Linup-Front-Logo

Die LPI Academy wird für die Community unterstützt von der Linup Front GmbH

A Django Site

Diese Seite

Version: 0 (Anselm)
22.8.2009 12:04:19

Benutzer

Nicht angemeldet

Kommentare

RSS