Shell Programmierung / UNIX Skripting

Seminarinformationen

Seminar - Ziel

In diesem 3-tägigen Seminar lernen die Teilnehmer, wie Sie Tätigkeiten auf einem UNIX/LINUX-System mit Hilfe von Shell-Skripten automatisieren können. Im Kurs wird die Programmierung eigener UNIX-Tools für sich wiederholende Aufgabenstellungen behandelt. Die syntaktischen Merkmale und die daraus entstehenden "Fallen" der Programmiersprache Shell werden nachhaltig bearbeitet. Zusätzlich werden gemeinsam hilfreiche Übungs-Shell-Skripte erarbeitet.

Teilnehmer - Zielgruppe

Linuxadministratoren

Kurs - Voraussetzungen

  • Kenntnisse im Arbeiten auf der Kommandozeile (analog MS-DOS)
  • Kenntnis des UNIX-Standard-Editors vi
  • UNIX/LINUX-Kenntnisse (Shell-Ebene mit Kommando-Zeile)
  • Kenntnisse in einer Programmiersprache

Seminardauer

  • 3 Tage
  • 09:00 Uhr bis 17:00 Uhr

Schulungsunterlagen

  • nach Absprache

Seminar-Inhalt / Agenda

Allgemeine Wiederholung der Grundlagen zu UNIX

Einführung

  • Skript-Aufbau und -Aufruf
  • Kommentare
  • Exit-Status
  • Fehlerkanal und Fehlersuche

Wichtige Kommandos

  • clear
  • echo
  • sleep
  • Kommando-Substitution
  • expr

ÂÂ Parameter und Variablen

  • Shell-Variablen
  • Umgebungs-Variablen
  • Vordefinierte Variablen
  • read
  • dd
  • Parameter
  • shift

Kontrollstrukturen zur Ablaufsteuerung

  • Vergleiche (test)
  • Verzweigungen (if, case)
  • Schleifen (for, while, until)
  • Vorzeitiger Abbruch (break, continue, exit)

Tipps und Hilfe zu häufigen Fehlern

Kommando-Kombination

  • Kommando-Listen (&& ||)
  • Kommando-Trenner (& ; NEWLINE)
  • Kommando-Gruppierung ((...) )
  • Line continuation ()

Funktionen zur Strukturierung von Skripten

  • Definition und Aufruf
  • Rücksprung (return)
  • Parameter-Übergabe
  • Werte-Rückgabe
  • Source-Operator (.)

Signalbehandlung (trap)

Hintergrund/Kind-Prozesse (& wait)

Anhang I (Skript-Aufruf, Usage-Meldung, Leere Anweisung, basename/dirname, exec, eval, getopts, Bedingte Variablen)

Anhang II (Shell-Optionen, Here-Dokument, select, tput, xargs, time, seq/jot, uname, (k)dialog, Rekursion)