Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
vortraege:bash:programmier_projekt_pebpp:start [2016-10-13 05:54] – Franke | vortraege:bash:programmier_projekt_pebpp:start [2018-11-14 20:41] (aktuell) – [Werkzeuge] Franke | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | {{entry> | ||
====== Proaktive Einführung in BASH, PHP und Programmierung / programmier_projekt_PEBPP ====== | ====== Proaktive Einführung in BASH, PHP und Programmierung / programmier_projekt_PEBPP ====== | ||
Zeile 9: | Zeile 10: | ||
===== Idee ===== | ===== Idee ===== | ||
- | Um einen Einstieg zu geben, dem möglichst alle Leute folgen können, werden hier die Vorgaben beschrieben damit Du in Eigenarbeit, | + | Um einen Einstieg zu geben, dem möglichst alle Leute folgen können, werden hier die Vorgaben beschrieben damit Du in Eigenarbeit, |
- | Eine erste Version wird in BASH gebaut, wenn diese fertig ist werden wir sie nochmals in PHP bauen. | + | Eine erste Version wird in BASH gebaut, wenn diese fertig ist werden wir sie nochmals in PHP (Konsole only) bauen. |
Die Idee dahinter ist, das Du sowohl die grundsätzliche LINUX-System Programmierung, | Die Idee dahinter ist, das Du sowohl die grundsätzliche LINUX-System Programmierung, | ||
Zeile 17: | Zeile 18: | ||
===== Werkzeuge ===== | ===== Werkzeuge ===== | ||
* [[http:// | * [[http:// | ||
- | * {{ : | + | * {{ : |
+ | * http:// | ||
* BASH / Die zu benutzende Shell | * BASH / Die zu benutzende Shell | ||
* PHP (5-7) / der PHP-Interpreter | * PHP (5-7) / der PHP-Interpreter | ||
* [[http:// | * [[http:// | ||
+ | * Dateiverwaltung und Editor: https:// | ||
+ | * Editoren: mcedit, joe, kwrite, kate | ||
+ | In eigener Sache: Wer mal [[https:// | ||
+ | ===== Teil 1 / Vorgaben zum Adressbuch ===== | ||
+ | Ein Adress-Programm in BASH habe ich schon in den Neunzigern geschrieben es ist 5382 Zeichen (incl. Kommentaren) groß. Das sollte also zu schaffen sein. ;-) --- // | ||
+ | |||
+ | Das Programm soll folgendes können: | ||
+ | |||
+ | * Menu | ||
+ | * Eingabe | ||
+ | * Ausgabe | ||
+ | * Sortieren | ||
+ | * Suchen | ||
+ | * Loeschen | ||
+ | * UNDO | ||
+ | * Source | ||
+ | * Hilfe | ||
+ | * ENDE | ||
+ | * Verarbeitet werden Adress- oder Freiformdaten, | ||
+ | * Daten werden nur als Textonly (ASCII) verarbeitet und gespeichert. | ||
+ | * Kommentare im Programm sind Pflicht. | ||
+ | * Jedes Programm enthält einen Versionsschlüssel in der Form: | ||
+ | * $VER: PROGRAMMNAME 0.0.1.5 (2016-10-13) (2016-01-01) PROGRAMMIERER $ | ||
+ | * $_VERDESC: NAME major-release.minor-release.major-bugfix.minor-changes DT-STAMP-CHANGE DT-STAMP-CREATE CREATOR-STRING $ | ||
+ | * Jedes veröffentlichte Programm trägt einen Dateinamen nach folgenden Schema (Sonst können wir hier die Programme nicht zuordnen oder vergleichen): | ||
+ | * PROGRAMMNAME.0.0.1.5.PROGRAMMIERER.DT-STAMP-CHANGE.bash | ||
+ | * fkn_adr.0.0.1.2.franke.20161012.bash | ||
+ | * Speichert auch für euch jede Version, dann könnt Ihr nachvollziehen was Ihr gemacht habt. | ||
+ | * Es ist sinnvoll zum jeweiligen Programm auch eine Demo Datei mit Dummy-Einträgen (also keine existierende Adressen etc.) zu haben, diese sollte dann auch dem Programm zuzuordnen sein, also besser ebenfalls nach dem Namensschema anlegen: fkn_adr.0.0.1.2.franke.20161012.db | ||
+ | * Sendet mir nach jedem Treffen eure jeweilige Version damit ich die hier reinstellen kann, dann kann jeder vom anderen lernen. | ||
+ | |||
+ | Viel Erfolg! | ||
+ | |||
+ | ===== Programm Versionen ===== | ||
+ | Ein erstes Rumpfprogramm seht Ihr hier: | ||
+ | |||
+ | <file bash adressprogramm_in_bash.0.0.0.1.Franke.bash> | ||
+ | #!/bin/bash | ||
+ | ############################################### | ||
+ | # $VER: adressprogramm_in_bash 0.0.0.1 (20020712/ | ||
+ | # Adress-Demo in Bash-Script ####################### | ||
+ | ############################################### | ||
+ | |||
+ | # DECLARATIONS / VARIABLES / FUNCTIONS / ... ################################ | ||
+ | |||
+ | |||
+ | # START ################################ | ||
+ | |||
+ | clear | ||
+ | echo | ||
+ | echo " | ||
+ | echo | ||
+ | echo " | ||
+ | echo | ||
+ | echo "Es dient dem Erfassen, suchen, loeschen von Datensaetzen aller Art" | ||
+ | echo " | ||
+ | |||
+ | # MAIN ################################# | ||
+ | |||
+ | # ... | ||
+ | |||
+ | exit 1 | ||
+ | </ | ||
+ | |||
+ | ===== Etappen ===== | ||
+ | - Implementiert ein Auswahlmenu und seht die einzelnen Programmfunktionen vor. | ||
+ | * Dazu ist z.B. eine case-Auswahl geeignet | ||
+ | - Ausbau der einzelnen Programmfunktionen. | ||
+ | - ... | ||
+ | |||
+ | ===== Schnipsel ===== | ||
+ | |||
+ | |||
+ | |||
+ | Testschnipsel für Teil: 1 | ||
+ | |||
+ | <file bash _preb_case.test> | ||
+ | #!/bin/bash | ||
+ | |||
+ | |||
+ | # Variablen Zuweisung: | ||
+ | |||
+ | KEY=' | ||
+ | Variablenname=' | ||
+ | FOO=' | ||
+ | |||
+ | echo $FOO | ||
+ | echo ${FOO} # das sollte IMMER so geschrieben werden | ||
+ | |||
+ | echo 'BAR ${FOO} FOO' # einfache Ticks entwerten | ||
+ | echo "BAR ${FOO} FOO" # doppelte Ticke entwerten NICHT | ||
+ | |||
+ | |||
+ | select VAR in AA BB CC | ||
+ | do | ||
+ | |||
+ | case ${VAR} in | ||
+ | |||
+ | AA) #################### | ||
+ | echo ' | ||
+ | ;; | ||
+ | BB) #################### | ||
+ | echo ' | ||
+ | ;; | ||
+ | *) ###################### | ||
+ | echo ' | ||
+ | ;; | ||
+ | esac | ||
+ | |||
+ | done | ||
+ | |||
+ | </ | ||