Merkwürdige Fehlermeldung

W

WAy2oo0

Grünschnabel
Okay Hy Leutz,

ich hoffe ihr könnt mir sagen woran es liegt aber ich komme einfahc nic ht drauf. Mein Script schmeisst mir immer diese Merkwürdige Fehlermeldung raus:

bash-2.03# . apu.sh
bash: apu.sh: line 29: syntax error: unexpected end of file

:hilfe2: ich kann damit nix anfangen...

mein Script was den Fehler verursacht ist zur überwachung von verzeichnissen gedacht...

#!/bin/bash
#Shellscript zur automatisierten Plattenplatzueberwachung
#

if [ -s apu.conf ];
then
datum=`date '+%m/%d/%y %H:%M'`

. /usr/maik/apu.conf

diskusage=`du -sk $FILESHARE_1 | sed s/[!-/a-z]*//g` ergebnis=`echo "$diskusage / 1024 * 100 / $MAX_IN_USE_1" | bc`

if [ $ergebnis -ge $SCHWELLENWERT1 ];
then
echo $datum, $FILESHARE_1, $ergebnis% of $MAX_IN_USE_1 Mb in use, mail to User >> $LOGPATH_1 cat << EOF | mail $USEREMAIL_1 Hallo $USER_1

Fileshare: $FILESHARE_1
Maximale Filesharegroesse: $MAX_IN_USE_1 Mb
Aktueller Speicherverbrauch: $ergebnis%

Gruss APU-Script
EOF;
fi;

fi


und die dazu gehörige Config-datei:

#!/bin/sh
#Schwellenwerte werden in % angegeben
#MAX_IN_USE wird in Mb ab gegeben
#Log-Daten Verzeichnispfade werden absolut angegeben #servername #Admin Email addy #Fileshare;1.Schwellenwert;2.Schwellenwert;Name des Verantwortlichen; Email des Verantwortlichen

SCHWELLENWERT1="80"
SCHWELLENWERT2="100"

FILESHARE_1="/usr/maik"
USER_1="Maik Paler"
MAX_IN_USE_1="180" USEREMAIL_1="way2000@lala.de"
LOGPATH_1="/usr/maik/log/fileshare1.log"
ADMINEMAIL_1="hans.peter@lala.de"


Ich komme einfach nicht weiter warum dieser Fehler auftritt...

Mein OS ist ein Solaris 5.8 auf ner Sun Workstation...

Brauch da drinngend nen bissel hilfe...
 
Hallo,

was macht das Semikolon hinter dem vorletzten fi im ersten file ?

hmhweb
 
Das beendet das Then aus der ersten IF-Abfrage.

die Notation ist in der bash

if [....];
then ;
fi

aber ich hab keine ahnung warum dieser kommische fehlker auftritt
 
Tschuldigung,

da hab ich mich verguckt: Mach mal das ; nach dem EOF weg.

Die Fehlermeldung beruht meist auf einem unvollständigen
"Klammer"pärchen, dazu zählen auch wenn ein ' `und " fehlt

Ich meinte übrigens das letzte Semikolon:
Code:
if [ test irgendwas ] ; then
   code
fi ;       # <- das ; braucht es m.M. nach nicht
 
Okay ich hab das gerade malö gemacht und es passiert nix...

der fehler bleibt der gleiche....

Is mir echt langsam zu hoch.....

?( ?(
 
Dann hätte ich nur noch den Vorschlag, daß Du Dein Skript mal strukturierst und
hier an Deinen Beitrag anhängst.
Ich habe gerade den Teil mit
Code:
cat << EOF
irgendein Text
EOF
in eine if Verzweigung reingeschrieben und es tut. Schreibe ich aber
statt EOF ein EOF;
bekomme ich die gleiche Fehlermeldung (auf Solaris 2.8 unter /bin/sh und unter SuSE 93. & bash) wie Du.

hmhweb
 
Ich glaube das war es ich hab es gerade geändert

thx jetzt läuft es

aber ich bin mir noch nicht ganz sicher warum weil jetzt ist doch die sintax des if-befehls, zumindest nach der man, verletzt.....


hmmm kommisch
 
Laut bash-synthax muss es auch
Code:
if [[ test ]]; then
      cat << EOF
      irgendein Text
      EOF
fi
heißen. Die simikolons sind da relaiv unwichtig, da bash ja jede zeile sowieso einzeln ausliest und ausführt ;)
 
Das geht IMHO nicht...und wirft nen Fehler (nicht ausprobiert, nur so im Hinterkopf):
finfirun schrieb:
Code:
if [[ test ]]; then
      cat << EOF
      irgendein Text
      EOF
fi

Ohne jetzt extra nachzusehen...sollte es mE richtigerweise so heißen (damit TABS ignoriert werden...):
Code:
if [[ test ]]; then
      cat <<[b]-[/b]EOF
      irgendein Text
      EOF
fi

siehe hierzu Man-Page von Bash unter "here documents"
 

Ähnliche Themen

geburtstags reminder

Queue für copy Script

Samba 4 Gast Zugang unter Ubuntu funktioniert nicht

Windows clients können nicht mehr auf lange laufendes System zugreifen

Automatischen Eintrag in courierimapsubscribe vornehmen

Zurück
Oben