In einem anderen Artikel hatte ich kurz geäußert, dass es möglich ist über eine Dialogbox Werte, die z.B. in Variablen gespeichert werden, weiterverarbeiten zu können. Ich habe eine Daueraufgabe zu erfüllen, die darin besteht, dass ich immer dann, wenn ich einen neuen Verlag bei meinen Tätigkeiten sehe, in eine Tabelle einer Datenbank einzufügen.
Diese Aufgabe könnte ich z.B. auf der Konsole via Login nach MySQL erledigen oder über PHPMyAdmin oder ich könnte mir aufwendig ein PHP-Script mit Formular und Datenbankanbindung erstellen.
Auf dem Weg, PHP zu ersetzen, bin ich über die Möglichkeit gestolpert, auch mit einen Shellscript die Tabellen einer Datenbank zu füllen. Zwar ist mein Ziel, ohne PHP und MySQL auskommen zu können, aber so ganz werde ich das zunächst nicht schaffen. Daher habe ich mich damit befasst, wie ich in einem Script überhaupt an eine Datenbank rankomme und Werte einfügen kann.
Das nachfolgende sehr simple Beispiel zeigt den entsprechenden Scriptcode:
Bei der Zuweisung von Werten (hier Text) zu Variablen im Shellscript musste ich lernen, dass das berühmt-berüchtigte Dollarzeichen, welches in vielen Sprachen eine String-Variable kennzeichnet, zunächst nicht gefordert ist. In der einfachen Art und Weise wird ein Variablenname erfunden, dem direkt ohne Leerzeichen ein Gleichzeitszeichen folgt, hinter dem dann in Gänsefüßchen, also doppelten Hochkommata und wiederum ohne Leerzeichen, der Text folgt, der in der Variablen gespeichert werden soll. Der Datentyp ist hier grundsätzlich zunächst nicht wichtig.
Vor einiger Zeit habe ich mir endlich die Zeit genommen, um ich mal ein bisschen mit der Shellprogrammierung zu befassen. Anlass dazu war das Interesse an Hugo, dem Generator von statischen HTML-Seiten. Zwar hatte ich vorher schon einiges mit Shellprogrammierung zu tun, aber immer nur als Trittbrettfahrer. Will heißen, ich habe mich bereits existierende Scripts genommen und diese versucht für meine Belange anzupassen. Naja, mein Verständnis für die Scriptprogrammierung war dadurch nicht wirklich geweckt.