Lehrer Nussbaumer - Linux bash-Programmierung

Grundlagen

  1. Einführung
  2. Variable
  3. Operatoren
  4. Ein- und Ausgabe

Datenstrukturen

Programmstrukturen 

Beispiele


-----------------
letzte Änderung:
09 December 2021
-----------------
Lehrer Nussbaumers Seite

... in Arbeit ...

Ein- und Ausgabe

Ohne Schnittstelle zum Benutzer ist ein Programm eigentlich wertlos. Bestimmte Eingaben sollen schließlich von unserem Skript verarbeitet werden; und die Ergebnisse sollen letztlich auch ausgegeben werden...

Ausgabe:

Fangen wir mit dem Einfacheren an: Shell-Skripte geben entweder Meldungen am Bildschirm aus, oder die Ausgabe wird in eine andere Datei umgeleitet ("output redirect"). Wir kennen bereits die Ausgabe von "Systemmeldungen", die am Bildschirm ausgegeben werden, während das Skript abgearbeitet wird:

echo "Das Programm wird geladen...."

Umfangreiche Ausgaben werden sinnvollerweise in eine Textdatei geschrieben. Dazu verwenden wir das Ausgabe-Umleitungssymbol ">":

alfred@newbie:~/bash/beispiele > proggi > log.txt

Eingabe

Eingaben sind an ein Shell-Skript entweder beim Aufruf der Skript-Datei (als "Eingabeparameter") oder mit Hilfe einer Eingabedatei ("input redirect") möglich. Wir besprechen zunächst die Eingaben beim Skript-Aufruf:

alfred@newbie:~/bash/beispiele > eingabe Alfred Informatik
Hi, Alfred! Warum lernst du Informatik?

Wie hat das funktioniert? Sehen wir uns zunächst einmal das (sehr einfache!) Skript an:

#!/bin/bash
echo "Hi, $1! Warum lernst du $2?"

Wir erkennen: Die Eingaben werden beim Aufruf des Skriptes durch Leerzeichen getrennt. Im Skript stehen diese Eingaben als Variable zur Verfügung, die die Position der Eingaben in der Eingabezeile angeben: $1 steht für den ersten Eingabeparameter, $2 für den zweiten, usw. (für mehrstellige Indizes müssen geschwungene Klammern verwendet werden: ${10} ${11} ...).

Die folgende Tabelle gibt einen Überblick über die Verwendung der Variablen "$":

Variable $ Bedeutung
$0 Enthält den Programmnamen
$# Gibt die Anzahl der Parameter $1, $2, ... aus.
$* Enthält alle Parameter
$@ Enthält alle Parameter
"$*" Gibt alle Parameter in einem Paar Anführungszeichen aus
"$@" Gibt alle Parameter, einzeln in Anführungszeichen gesetzt, aus
$? Gibt den Rückgabewert des letzten Befehles aus
$$ Liefert die PID (Prozess-Identity) des laufenden Prozesses
$! Liefert die PID des zuletzt im Hintergrund gestarteten Prozesses
$_ Enthält den letzten Parameter des zuletzt gestarteten Prozesses

Die Befehle zur Stringverarbeitung können im Abschnitt Zeichenketten nachgelesen werden.

Sollen viele Daten eingegeben werden, ist es sinnvoll, die Eingabedaten in eine (Text-)Datei zu schreiben und die Eingabe aus dieser (Text-)Datei in das Skript umzuleiten. Wir verwenden beispielsweise die folgende Textdatei:


  


© Alfred Nussbaumer, Weblog "MiniNuss"