Lehrauftrag Informatik für Elektrotechnik und Maschinenbau

Infoblatt 4 - Shell-Scripts

Dieses Infoblatt ist ein Vorspann für das Übungsblatt Übung 3.

Voraussetzung sind Infoblatt 1 und Infoblatt 2 sowie Übung 1; weiter gehts inhaltlich mit Infoblatt 5 - Vernetzung.
 

1. Shell-Scripts sind lesbare Dateien, die Kommandofolgen enthalten

Jede Shell erlaubt das Ablegen von Kommandofolgen in einer Datei, einem sogenannten Shell-Script. Diese Datei muss für den/die Aufrufende/n ausführbar sein. Dann wird die Datei einfach bei ihrem Namen genannt, damit sie ausgeführt wird.

 
 

Beispiel:

In der Datei zeige stehen 2 Zeilen:

~>more zeige
whoami

date

Die Datei zeige wurde für den User ausführbar gemacht mittels

~>chmod u+x zeige

Dann erfolgt der Aufruf mittels:

~>zeige

info49

09.01.02 15:30 CET

2. Die Shell-Scripts können mit Parametern gesteuert werden

Parameter werden beim Aufruf mitgegeben (aktuelle Parameter).

Auf Parameter wird im Script entsprechend der Position des Parameters mittels eines vorangestellten $-Zeichens zugegriffen (formale Parameter): Der erste Parameter hinter dem Kommandonamen heißt $1, der zweite $2 usw.

Alle Parameter zusammen werden mit $* angesprochen.

Die Zahl der Parameter steht auf $#.
 

 

Beispiel:

Script zeigeparameter:

echo "Dieses Script wurde mit $# Parametern aufgerufen."
echo "Sie lauten: $*."

Ergebnis:

~>zeigeparameter vier Parameter als Beispiel
Dieses Script wurde mit 4 Parametern aufgerufen.
Sie lauten: vier Parameter als Beispiel.
~>welche "Ein Parameter mit fünf Worten."
Dieses Script wurde mit 1 Parametern aufgerufen.
Sie lauten: Ein Parameter mit fünf Worten..

3. In Shell-Scripts können Variable definiert und verwendet werden

Durch Zuweisung an eine Variable oder durch das Lesekommando wird eine Variable definiert.

Durch vorangestelltes $-Zeichen wird sie verwendet.
 

 

Beispiel:

VARIABLE=17

echo "Geben Sie noch einen zweiten Wert ein:"

read WERT

echo "Auf der Variablen VARIABLE steht jetzt eine $VARIABLE"

echo "Auf der Variablen WERT steht jetzt der String $WERT"

 

4. Der Ablauf in Shell-Scripts kann mit if gesteuert werden

Die einfachste Ablaufsteuerung erfolgt mittels if, das gesteuert wird über den Exit-Status eines Kommandos (wenn das hinter if stehende Kommando korrekt lief, wird der then-Zweig, sonst der else-Zweig durchlaufen).

Syntax:

if Kommando

then

Kommandofolge1

else

Kommandofolge2

fi
 

if Kommando

then

Kommandofolge1

fi

 

In der Regel wird als Kommando hinter dem if das test-Kommando eingesetzt.
 

 

So kann zum Beispiel eine Überprüfung stattfinden, ob dem Script ein Parameter mitgegeben wurde:

if test "$1" = ""

then

echo "Der erste Parameter ist ein leerer String."

else

echo "Der erste Parameter ist ein String: $1"

fi

Beispiele für Bedingungen beim Kommando test:

$# = n   Anzahl der Parameter = n

s1 = s2  zwei Zeichenketten sind gleich

$? != 0   Exit Status des letzten Befehls ist ungleich 0

-d Hugo  Hugo ist ein Directory

-f Hugo   Hugo ist eine einfache Datei

-r file    Datei existiert und Lesezugriff ist erlaubt.

Für numerische Ausdrücke (integer) sind folgende Vergleichsoperationen erlaubt (die Zeichen > und < sind ja schon für die Aus-/Eingabeumlenkung reserviert!):

-gt (größer als), -ge (größer oder gleich),
-eq (gleich), -ne (ungleich),
-le (kleiner oder gleich), -lt (kleiner als)

5. Die Ablaufsteuerung mittels Schleifen ist möglich

Syntax:

while [ Bedingung ]
do
... Befehle ...
done
 

 

Beispiel-Script: ziffern
number=1
while test "$number" -lt 10
do
echo -e "$number\c"
((number=number+1))   # Rechenausdruck
done
echo
 

 

Ergebnis:

~>ziffern
123456789