Konfiguration der Bash (1)
Bash-Kurs Teil 6
Der <C>shopt<C>-Befehl
Mit der Einführung der Bash-Version 2.0 gibt es viele neue Konfigurations-Features. Sie werden durch den "erweiterten Konfigurationsbefehl" shopt gesetzt oder angezeigt.
$> shopt cdable_vars off cdspell off checkhash off … $> echo $SHELLOPTS braceexpand:hashall:histexpand:monitor:…
Die aktuellen Optionen sind über die Variable SHELLOPTS zugänglich.
Tabelle 2:Mittels <C>shopt<C> einstellbare Optionen der Bash
| Option | Funktion |
|---|---|
| cdable_vars | bewirkt, dass die Bash Argumente des cd-Befehls als Variablen interpretiert, wenn es sich um keine Verzeichnisse handelt
|
| cdspell | einfache Schreibfehler (vertauschte oder fehlende Buchstaben) in Verzeichnisnamen werden durch diese Option automatisch korrigiert |
| checkhash | die Bash sucht einen externen Befehl zunächst in der Hashtabelle, bevor er anhand des Suchpfades gefunden wird |
| checkwinsize | wenn diese Option aktiviert ist, prüft die Bash nach jedem ausgeführten Befehl, ob sich die Terminal-Abmessungen geändert haben. |
| cmdhist | zusammengehörige Befehlszeilen werden in der History in Form einer Zeile abgelegt, dadurch vereinfacht sich ihre Bearbeitung |
| dotglob | durch das Setzen dieser Option werden auch die mit einem Punkt beginnenden Dateinamen beim automatischen Komplettieren berücksichtigt |
| execfail | verhindert in Skripten, dass die Shell nach einem Fehler in einem exec-Befehl terminiert
|
| histexpand | bewirkt, dass Historydateien nicht mehr überschrieben, sondern an bestehende Dateien angehängt werden |
| lithist | zusammen mit cmdhist bewirkt sie das Zusammenfassen mehrzeiliger Befehle |
| sourcepath | der source-Befehl kann auf die PATH-Variable zugreifen, wenn diese Option gesetzt ist
|
| expand_aliases | erlaubt das Expandieren von Alias-Definitionen |
| nocaseglob | bei der automatischen Dateinamenkomplettierung berücksichtigt die Bash Groß-/Kleinschreibung nicht, wenn diese Option aktiv ist |
| huponexit | allen von einer interaktiven Shell ausgeführten Hintergrundjobs wird ein SIGHUP-Signal gesendet, wenn sie terminiert |
| restricted_shell | die Bash wird im Restricted-Modus mit eingeschränkter Funktionalität betrieben |
In Tabelle 2 sind die wichtigsten Bash-Optionen aufgeführt, die mittels shopt gesetzt werden können. Eine vollständige Liste ist in [2] enthalten. Der Befehl verfügt über folgende Optionen: -p (print) gibt eine Liste der aktuellen Einstellungen aus, -s (set) setzt die im Argument angegebene Option, -u (unset) löscht sie. Durch -q (quiet) wird die Ausgabe des Befehls unterdrückt, wie dies in Skripten praktisch sein kann. Durch -o beschränkt sich die Wirkung von shopt auf die durch set -o gesetzten Optionen.
Fazit
Auch die Konfiguration der Bash birgt keine unüberwindbaren Hindernisse. Viele Features lassen sich einfach und unabhängig voneinander einstellen. Die Einstellungen sollten nach einer gewissen "Erprobungsphase" in die entsprechenden Konfigurationsdateien übernommen werden, damit sie immer zur Verfügung stehen.



