Shell

Aus Tuxfutter

Wechseln zu: Navigation, Suche

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

'Persönliche Werkzeuge