# shell function



## schellness (21. Januar 2004)

Hallo,

ich weiß so langsam nicht mehr weiter. Warum  meine Funktion nicht? Anbei packe ich mal kurz den Code rein...

#!/bin/bashfunction dbeintrag()
{
sqlplus -s $USER/$PASSWD << EOF
insert into OM_ORDERMAIL
(ID, ID_COMPANY, TYPE, CUSTNO, ERRCODE, ORDER_FILE, EMAIL) 
values
($id, $idcompany, '$ordertype', $kundennummer, $errorcode, '$filename', '$email')
return 1
}


id=SEQ_ORDERMAIL.NEXTVAL
idcompany=90
ordertype=refused
kundennummer=12345
filename=/peterlustig/home/21012004.21.xml
errorcode=12200
email=jaja@deinemudda.com
dbeintrag $id, $idcompany, $ordertype, $kundennummer, $errorcode, $filename, $email 

Wenn ich jetzt vor und nach Deklarierung der Funktion ein echo "trallalala" setze, so kommt er bis zum ersten echo. Das echo nach der Deklaration wird leider nicht mehr angezeigt. 

Folgende Fehlermeldung bekomme ich andauernd...

line 21: syntax error: unexpected end of file


Hiiiiiiiiillllffeeeeeeeeee!


----------



## melmager (22. Januar 2004)

Da fehlt im Script
ein EOF
im Prinzip vor dem return


----------



## schellness (22. Januar 2004)

*Hallo,

das ist mir inzwischen auch schon aufgefallen und der Code sieht inzwischen auch so aus...*

#!/bin/bash
echo "Ich fange an und deklariere die Funktion"
function dbeintrag ()
{
  echo "Ich führe die Funktion aus"
  sqlplus -s $USER/$PASSWD << EOF
  insert into OM_ORDERMAIL
  (ID, ID_COMPANY, TYPE, CUSTNO, ERRCODE) values ($id, $idcompany, '$ordertype', $kundennummer, $errorcode)
  EOF
  echo "Ich beende die Funktionsausführung"
}

echo "Ich deklariere jetzt die Variablen"
id=SEQ_ORDERMAIL.NEXTVAL
idcompany=90
ordertype=refused
kundennummer=12345
errorcode=12200
echo "Jetzt rufe ich die Funktion auf"
dbeintrag $id $idcompany $ordertype $kundennummer $errorcode $filename $email
echo "Ich beende!"

*Nun läuft das Script auch durch und gibt mir die echos aus. Allerdings wird nichts in die Datenbank eingetragen, was allerdings ohne Funktion prächtig funktionierte.

Alles Mist ;-)*

Gruß Schelle


----------



## melmager (23. Januar 2004)

Ich bin mir jetzt nicht sicher aber ich glaube innerhalb der Function musst
du mit $1 usw arbeiten 
$1 = erster wert
$2 = zweiter wert usw
der übergeben wird


----------



## schellness (26. Januar 2004)

aha... das werde ich nachher mal probieren. danke soweit. ich geb noch mal ne rückmeldung


----------

