Shell
Aus Tuxfutter
Eine sogenannte Shell (englisch für „Hülle“ oder „Schale“) ist eine Benutzerschnittstelle, mit dessen Hilfe z.B. eine grafische Benutzeroberfläche oder eine textbasierte Kommandozeile zur Verfügung gestellt wird. Im Zusammenhang mit Linux- oder Unix-Betriebssystemen ist mit der Shell jedoch meistens eine beliebige Kommandozeile gemeint.
Heutige Betriebssysteme – oder die Distributionen der selben – haben in der Regel eine Shell vorinstalliert (siehe auch Linux Shells).
[Bearbeiten] Programmierung
Die Möglichkeiten der Shell-Programmierung unter Linux sind differenziert von echten Programmiersprachen zu betrachten. Diverse Shells wie sh, bash, zsh, ... bieten integrierte Werkzeuge und rudimentäre Operatoren, mit denen bspw. Zugriffe auf Dateien in interaktiver Form oder Administrationsaufgaben in einer größeren Installation durchgeführt werden können. Die Bash bietet eine große Auswahl von Werkzeugen und Operationen - so z.B.
- Schleifen
- Bedingungen
- Ein-/Ausgabestreams sowie deren Umleitungen
- Dateimanipulationen
... noch jede Menge mehr
Ein Beispiel (demo1.sh):
#!/bin/bash
c=1 for i in $@; do echo "Parameter $c: "$i c=$((c+1)) done
Die erste Zeile (das Shebang) gibt an, mit welchem Interpreter der Code ausgeführt werden soll. In diesem Fall ist das die Bourne Again Shell bash.
Dieses Skript gibt beim Aufruf ./demo1.sh hallo ballo folgendes aus:
Parameter 1: hallo Parameter 2: ballo
Es führt also für jeden übergebenen Parameter (for i in $@;) den Code zwischen do und done aus: Ausgabe einer Zahl (c) und der Wert des aktuell bearbeiteten Parameters (i). Anschließend wird die Zahl inkrementiert (c=$((c+1))).
Ein weiteres Beispiel (demo2.sh):
#!/bin/bash if [ ! -f meinedatei ]; then touch meinedatei; fi
Dieses Skript erzeugt mittels touch eine Datei, sofern diese noch nicht (repräsentiert durch das !) existiert (-f meinedatei).
[Bearbeiten] Weblinks
- Betriebssystem-Shell – Artikel bei der Wikipedia
- UNIX Shellprogrammierung – Übersichtsseite von Kristian Köhntopp

