Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: Ubuntu-Forum & Kubuntu-Forum | www.Ubuntu-Forum.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

Pluto

User

  • »Pluto« ist männlich
  • »Pluto« ist der Autor dieses Themas

Beiträge: 52

Registrierungsdatum: 11.04.2007

Architektur: 32-Bit PC

Desktop: KDE3

Andere Betriebssysteme: Debian Lenny

  • Nachricht senden

1

19.07.2007, 13:05

./backup1.sh: line 34: syntax error near unexpected token `}'

Hallo,
ich habe schon mehrer Scripte für die eine oder andere Aufgabe geschrieben.

Jetzt bastel ich mir gerade eine kleines Backup Script mit Lazarus kein Problem, nur wollte ich die Bash-Shell nutzen, weil die reicht dafür voll und ganz.

leider bekomme ich beim ausführen den oben genannte Fehler Meldung.
Hier ist mein Code:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/bin/bash
#Autor       - Michael Springwald
#Erstellt am - Donnerstag, 19.Juli.2007
#Updates     - 

Backup_zip() {
  BackupDir='/home/pluto/bacup/'
  Verzeichnis[0]='/home/pluto/daten/eigene/lazarus/'

  NewDir=$( date "+%d.%m.%Y")
  NewDir="$BackupDir$NewDir/"
  # Das BackupDir wird erstellt, wenn es noch nicht gibt
  if ! [ -d ${BackupDir} ]; then mkdir  ${BackupDir} fi
  # Das Tages Datum wird als Verzeichnis erstllt, wenn es noch nicht gip
  if ! [ -d ${NewDir} ]; then mkdir $NewDir fi

  # ls - l wird aufgerufen und im array lsa abgelegt
  lsa=($(ls -1 ${Verzeichnis[0]}))
  # Die löbge von lsa wird in Len gepseichert
  len=${lsa[*]}-1;

  cd $NewDir

  #  Die schleife wird mit 0 Installisiert und geht bis <=len 
  for ((VAR=0;VAR<=len;VAR=VAR+1));
  do  
    zipDir=${Verzeichnis[0]}${lsa[$VAR]}/
    zipName=${lsa[$VAR]}

  #  echo $zipName $zipDir
    7za a -tzip ${zipName} ${zipDir}
  done
  return 40
}

echo $1
echo "Hallo"


Ich hatte es ohne eine Funktion, da hat es geklappt. Aber ich wollte noch mehr Funktionen hinzufügen. Und zum aufteieln wollte ich halt mehrer "Unterprogramme schreiben" in Pascal währe das jetzt eine Procedure da ich kein Rückgabe wert brauche.

in meinem Test Script hat es prima geklappt. nur hier nicht.
(ich hoffe das Script ist klar soweit. was es macht)

PS: Schade das es hier kein Syntax Higleiter für Shell Scripte gibt, oder bin ich Blind ? ich habe nur einen für PHP gesehen :(
MFG
Michael Springwald

"Bitte nur Deutsche Hinweise und Links angeben, da ich noch am englischen lernen bin"

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Pluto« (19.07.2007, 13:06)


Beiträge: 5

Registrierungsdatum: 23.07.2007

  • Nachricht senden

2

24.07.2007, 12:28

RE: ./backup1.sh: line 34: syntax error near unexpected token `}'

Hi,

keine Ahnung warum dieser Fehler kommt.

Aber Syntax-Highlighting für Shell-Skripte funktioniert im vi. Wenn du im Kommandomodus bist, einfach
:syntax on
eingeben

Grüße

Beiträge: 5

Registrierungsdatum: 23.07.2007

  • Nachricht senden

3

24.07.2007, 12:40

RE: ./backup1.sh: line 34: syntax error near unexpected token `}'

Jetzt weiß ichs doch:

Bei den if-Abfragen fehlt ein Semikolon vor dem fi.

Es sollte so aussehen
if <Ausdruck>; then <Befehl>; fi

Oder Zeilenumbrüche statt eines Semikolons:

if <Ausdruck>
then Befehl
fi

Pluto

User

  • »Pluto« ist männlich
  • »Pluto« ist der Autor dieses Themas

Beiträge: 52

Registrierungsdatum: 11.04.2007

Architektur: 32-Bit PC

Desktop: KDE3

Andere Betriebssysteme: Debian Lenny

  • Nachricht senden

4

24.07.2007, 12:46

ich meinte die Syntax Higleiter hier im Forum !

ich habe herrausgefunden das ich nicht
if ! [ -d ${BackupDir} ]; then mkdir ${BackupDir} fi
schreiben darf.
wenn ich das in
if ! [ -d ${BackupDir} ]; then
mkdir ${BackupDir}
fi
mache geht es prima !

naja!
Trozdem vielen Dank !

ach ja, ich nutze GEdit für die Scripte !
MFG
Michael Springwald

"Bitte nur Deutsche Hinweise und Links angeben, da ich noch am englischen lernen bin"