Hallo Lutz, danke für die Infos!
Hi,
da fehlen doch noch etwas Grundlagen der Programmierung.
Die Befehle, die die gelesenen Parameter verwenden, müssen in
den Codeblock der Schleife, also zwischen do und done.
Außerhalb müssen die Variablen als ungültig angesehen werden.
(Sind sie nicht, ist aber eine sinnvolle Regel.)
So ein Konzept ist mir neu, ich denke, ich habe hier einige Defizite in der Script-Sprache…
mMn hat eine Ausgabe (echo) in einer Schleife wenig Sinn.
Was ist denn die volle Ausgabe? Macht der echo-Befehl
irgendetwas sinnvolles? Evtl. habe ich auch das Problem nicht
ganz verstanden und der dritte Parameter gehört gar nicht in
diesen SQL-Befehl. So gut kenne ich SQL nicht.
MfG Lutz
Der original-SQL-Befehl baut eine Verbindung zur Datenbank auf
Also im Original-Script:
db2 "connect to L50204T user geri using bimbam100"
Der Codeblock scheint es auch richtig zu machen, zumindest die echo-ausgabe ist richtig,
eventuell stört dann dieses „IFS=$OLDIFS“.
Ich wollte aus Deinem Script
#!/bin/bash
OLDIFS=$IFS
IFS=';'
cat $JCLPATH/ini.jcl|while read trash database user password
do
echo "connect to $database user $user using $password"
done
IFS=$OLDIFS
plus dem Original-Script
db2 "connect to L50204T user geri using bimbam100"
db2 "delete from kunde"
db2 "quit" \> /dev/null
die Kombination
#!/bin/bash
OLDIFS=$IFS
IFS=';'
cat $JCLPATH/ini.jcl|while read trash database user password
do
db2 "connect to $database user $user using $password"
done
IFS=$OLDIFS
db2 "delete from kunde"
db2 "quit" \> /dev/null
machen. Das funktioniert aber wg. der vorhin gemeldeten Fehlermeldung nicht.
Ich hatte mir eigentlich einen Befehl in etwa
Teilstring(cat $JCLPATH/ini.jcl;SucheErstes";";SucheZweites";")
erwartet, dass so etwas möglich ist. Dh. Dass ein
String nach einem Zeichen durchsucht wird, und die Position zurückgegeben wird und ein weiterer Befehl einen Teilstring anhand der gefundenen Positionen zurückgeben kann (ähnlich wie in
Excel, wenn ich das so sagen darf
Bei den Beschreibungen von sed und awk hab ich gleich mal nix verstanden, aber vllt gibts ja auch andere einfachere Befehle…
Danke & Gruß Gerald