Programmier-Projekt - Prozesse starten mit sh4us

sh4us    -   Ein Projekt für die Zukunft.

sh4us    -   Ein Projekt mit Blick in die Vergangenheit der BIFS2a

 

 

Wir programmieren eine eigene Shell sh4us
(shell for us; shell für uns, eine eigene Shell halt ;-)

 

 

 

1.      Schritt: Die Shell sh4us kann von der Standard-Eingabe einfache Kommandos ohne Parameter einlesen und ausführen. Während des Abarbeitens „schläft“ sh4us. Danach fordert sie mit einem Prompter erneut zur Eingabe auf.

2.      Schritt: Die Shell sh4us erkennt die ihr beim Aufruf übergebene Option "-c" mit einem Parameter "Kommando" und führt dann nur dieses eine Kommando (per exec aufgerufen) aus; sie beendet sich danach sofort wieder. Das sollten Sie ohne großen Aufwand in ihre erste Version einbauen können.

3.      Schritt (optional): Die Shell sh4us meldet sich nicht mit ihrem normalen Prompter wenn sie die Variable SH4USPROMPT lesen kann, sondern mit dem dort angegebenen String. Dazu müssen Sie sich anschauen, wie die Umgebungsvariablen verarbeitet werden. Dazu schlage ich Herrn Willemers Buchauszug www.willemer.de/informatik/unix/unprmain.htm vor.

4.      Schritt: Die Shell sh4us wertet die ihr beim Aufruf übergebene Option -h (für Hintergrundarbeit) aus und startet die interaktiv eingegebenen Kommandos jeweils ohne dann auf ihre Beendigung zu warten, sofort danach erscheint wieder der Prompter.

5.      Schritt: Die Shell sh4us analysiert jetzt genauer die interaktiv eingegebene Kommandozeile. Als Erstes könnte sie ein Semikolon in der Kommandozeile erkennen und somit zwei Prozesse starten.

6.      Schritt: Die Shell sh4us wird in der Version Schritt 2) und dann auch in Version Schritt 5) erweitert, so dass sie nicht nur einfache Kommandos, sondern auch Kommandos mit Parametern/Optionen aufrufen kann.

7.      Schritt: Die Shell sh4us aus dem Schritt 5) wird so verändert, dass statt des Semikolons (oder auch zusätzlich) ein Pipe-Symbol erkannt und korrekt behandelt wird (das können Sie auch mit popen() realisieren.

 

to be continued