Beispiel-Shellvariablen

#!/bin/bash
#Name des Skriptes
echo Name: $0
#Anzahl der Parameter
echo Anzahl der Parameter:$#
#Die Parameter
echo Parameter zusammen: $@
#Parameter einzeln
echo alle Parameter aufgelistet
for i in $@
do
  echo Parameter $i
done
echo Wir rechnen heute am $(date): 4+6= $[4+6]

Beispiel if

#!/bin/bash
echo Bitte eine Zahl eingeben:
read zahl
echo Sie haben die $zahl eingegeben
if [ $zahl -gt 10 ]; then
  echo die Eingabe war groesser als 10
else
  echo die Eingabe war kleiner gleich 10
fi
if [ $zahl -eq 1 ]; then
  echo die Eingabe war 1
else
  echo die Eingabe ungleich 1
fi
if [ $zahl -le 20 ]; then
  echo die Eingabe war kleiner gleich 20
else
  echo die Eingabe war groesser 20
fi
echo Welche Schule besuchen Sie?
read schule
if [ "$schule" != "HBU" ]; then
  echo Sie besuchen nicht das HBU
else
  echo Sie besuchen die Schule $schule
fi
echo Wie lautet Ihr Homeverzeichnis?
read verz
if test -d /home/$verz; then
  echo Das Verzeichnis $verz existiert unter /home
else
  echo Das Verzeichnis $verz existiert nicht unter /home
fi

Beispiel case

#!/bin/bash
echo Welche Klasse besuchen Sie?
read klasse
case $klasse in
  fsi) echo Sie wollen den Techniker machen;;
  itae1) echo Sie wollen ITA werden, viel Erfolg dabei;;
  itae2) echo Sie wollen ITA werden, viel Erfolg dabei;;
  itam1) echo Sie wollen ITA werden;;
  itam2) echo Sie wollen ITA werden;;
  itao1) echo viel Erfolg bei der Abschlusspruefung;;
  itao2) echo viel Erfolg bei der Abschlusspruefung;;
  *) echo schoen, Sie besuchen also die $klasse;;
esac

Aufgabe: Erstellen eines Skriptes zur Analyse von userspezifischen Daten

Hier sehen Sie die Ausgabe eines Skriptes:

Auslesen von Umgabungsvariablen und Analyse
Willkommen fsi
Ihr Homeverzeichnis /home/fsi
Ihre Shell /bin/bash
Ihr zuletzt benutzes Kommando /bin/bash/ls
Pruefung ob ihr Homevezeichnis /home/fsi den gleichen Namen wie fsi hat
Der Name ist gleich
Heutiges Datum: Do 20. Sep 14:08:02 CEST 2012
Diese Dateien in ihrem Homeverzeichnis wurden im Monat Sep erstellt:
-rw-r--r-- 1 fsi fsi 464 Sep 20 13:04 case_prog.sh
-rwxr----- 1 fsi fsi 10 Sep 21 2009 ethlist
-rw-r--r-- 1 fsi fsi 744 Sep 20 13:04 if_prog.sh
-rwxrwx--- 1 fsi fsi 277 Sep 20 13:04 shellvar.sh
-rwxrwx--- 1 fsi fsi 657 Sep 20 13:05 umgebvar_analyse.sh
Hier nur der Name der Dateien
case_prog.sh ethlist if_prog.sh shellvar.sh umgebvar_analyse.sh

Schreiben Sie das entsprechende Skript
  1. Benutzen Sie dazu die Shell-Umgebungsvariablen wie $USER an entsprechender Stelle. Eine Liste der aktuellen Umgebungsvariablen liefert Ihnen das Kommando printenv
  2. Die Ausgabe von Kommandos wie z.Bsp ls kann man wie folgt aufrufen:
    echo $(ls)
  3. Um die Ausgabe eines Kommandos zu filtern kann man mit der sogenannten Pipe | arbeiten.
    ls |grep fsi
  4. Alle Ausgaben in Listenform lassen sich mit dem Kommando awk filtern