Shell Script überprüfen

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von xXNemesisXx, 04.02.2008.

  1. #1 xXNemesisXx, 04.02.2008
    xXNemesisXx

    xXNemesisXx Jungspund

    Dabei seit:
    12.12.2007
    Beiträge:
    18
    Zustimmungen:
    0
    Hallo liebes Unix Board,

    Ich hab ein Shellscript was wenn ich es im Terminal ausfürhen möchte mir eine Komische Fehlermeldung ausgibt.

    In der line 30 ist nichts!!! Das ist die letzte zeile und die ist leer.

    Hier seht ihr mal mein Script:

    Code:
    #!/bin/sh
    # Datenbank abfragen
    	# Gibt das eingegebene BackUp Verzeichnis aus
    	lbu_speicher="SELECT lbu_verz FROM last_backup" | mysql -u BackUpper --password=BLUBB BackUp;
    	# Gibt den Speicherort des BackUps aus
    	lbu_ort="SELECT lbu_ort FROM last_backup" | mysql -u BackUpper --password=BLUBB BackUp;
    	# Gibt den Namen des zu erstellenen BackUps aus
    	lbu_name="SELECT lbu_name FROM last_backup" | mysql -u BackUpper --password=BLUBB BackUp;
    	# Gibt den Archiv Typen des BackUps aus
    	lbu_type="SELECT lbu_type FROM last_backup" | mysql -u BackUpper --password=BLUBB BackUp;
    # Wechsel ins Verzeichnis
    cd /var/www
    # Erstelle BackUp Archiv
    if ( $lbu_type == "tar" ) then
    	tar -cf ${lbu_name} ${lbu_speicher}
    	mv ${lbu_name} ${lbu_ort}
    [
    else if ( $lbu_type == "tar.gz" ) then 
    
    	tar -czf ${lbu_name} ${lbu_speicher}
    	mv ${lbu_name} ${lbu_ort}
    ]
    [
    else if ( $lbu_type == "tar.bz2" ) then
    
    	tar -cjf ${lbu_name} ${lbu_speicher}
    	mv ${lbu_name} ${lbu_ort}
    ]
    fi
    
    
    Line 30 ist unter dem "fi"
    Ich hab keine ahnung was der von mir will die if anweisung ist doch durch fi "geschlossen" !?
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. juan_

    juan_ König

    Dabei seit:
    22.01.2004
    Beiträge:
    992
    Zustimmungen:
    0
    Ort:
    Berlin
    ich kenne mich leider nicht mit dem Shellscrpting aus,
    aber bei ruby ist das so, dass die If-Anweisung def. ein else-Zweig haben muss, vllt ist das nur dein Fehler!

    ansonsten musst du die if-Anweisung vllt einfach nur schließen, fehlt vllt ein "end"?

    ciao
     
  4. #3 xXNemesisXx, 04.02.2008
    xXNemesisXx

    xXNemesisXx Jungspund

    Dabei seit:
    12.12.2007
    Beiträge:
    18
    Zustimmungen:
    0
    nope das wars auch nicht...

    hab noch mal ein bisschen rum experimentiert und nun bekomme ich eine andere fehlermeldung:

    Code:
    # Wechsel ins Verzeichnis
    cd /var/www
    # Erstelle BackUp Archiv
    if ( $lbu_type == "tar" ) then
    	tar -cf ${lbu_name} ${lbu_speicher}
    	mv ${lbu_name} ${lbu_ort}
    [
    elif ( $lbu_type == "tar.gz" ) then 
    
    	tar -czf ${lbu_name} ${lbu_speicher}
    	mv ${lbu_name} ${lbu_ort}
    ]
    [
    else ( $lbu_type == "tar.bz2" ) then
    
    	tar -cjf ${lbu_name} ${lbu_speicher}
    	mv ${lbu_name} ${lbu_ort}
    ]
    fi
    
    ich hab jetzt mal die Datenbank abfragen weggelassen... ihr seht das script ab line 11.

    Was ist ein token? oO'
     
  5. #4 Wolfgang, 04.02.2008
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Welche Shell und welches OS.
    Immer diese Frage zuerst beantworten.

    in der bash wird ein Test mit folgender Syntax realisiert.

    Code:
    Stringvergleich:
    if [ "$VAR" = "STRING" ];
    then
    ...
    fi
    
    Else ist optional.


    Anmerkung:
    Wenn du dich auf Zeilennummer berufst, dann numerier deinen Code bitte.

    cat -n file. ;)

    Gruß Wolfgang
     
  6. #5 xXNemesisXx, 04.02.2008
    xXNemesisXx

    xXNemesisXx Jungspund

    Dabei seit:
    12.12.2007
    Beiträge:
    18
    Zustimmungen:
    0
    okay...

    Shell: Bash
    OS: ? Deeeebian 4!!! ?


    Zeile 24 ist:

    Code:
    else ( $lbu_type == "tar.bz2" ) then
     
  7. #6 Wolfgang, 04.02.2008
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Du hast das oben von mir aber gelesen?

    Deine ganze Syntax ist falsch.

    Lass die runden Klammern weg und ersetze sie durch [ ] umgeben von Leerzeichen.
    Die wahllos eingestreuten eckigen Klammern streiche.
     
  8. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  9. #7 xXNemesisXx, 04.02.2008
    xXNemesisXx

    xXNemesisXx Jungspund

    Dabei seit:
    12.12.2007
    Beiträge:
    18
    Zustimmungen:
    0

    ja hab ich gemacht aber es kommt immer noch ein fehler:

    Code:
    line 17: syntax error near unexpected token elif
    line 17: `elif [ $lbu_type == "tar.gz" ] then'
    Code:
    # Wechsel ins Verzeichnis
    cd /var/www
    # Erstelle BackUp Archiv
    if [ $lbu_type == "tar" ] then
    	tar -cf ${lbu_name} ${lbu_speicher}
    	mv ${lbu_name} ${lbu_ort}
    [B]17: elif [ $lbu_type == "tar.gz" ] then[/B]
    	tar -czf ${lbu_name} ${lbu_speicher}
    	mv ${lbu_name} ${lbu_ort}
    else [ $lbu_type == "tar.bz2" ] then
    	tar -cjf ${lbu_name} ${lbu_speicher}
    	mv ${lbu_name} ${lbu_ort}
    fi
    
     
  10. #8 Wolfgang, 04.02.2008
    Zuletzt bearbeitet: 04.02.2008
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Dann lies nochmal genau meinen Hinweis

    Code:
    Stringvergleich:
    if [ "$VAR" = "STRING" ][b][color=red];[/color][/b]
    then
    ...
    fi
    
    Auszug aus der Manpage zur Bash:
    Wolfgang
    edit://
    Damit du die eckigen Klammern in der Manpage richtig interpretierst, gleich noch diesen Hinweis für die man.
     
Thema:

Shell Script überprüfen

Die Seite wird geladen...

Shell Script überprüfen - Ähnliche Themen

  1. Shell Script Problem

    Shell Script Problem: Hallo zusammen, ich arbeite momentan mit einem Plagiat Tool, die ich über Git Bash ausführe. Es wird im Endeffekt ein Link generiert, die ich...
  2. Shellscript für rotierende Datensicherung

    Shellscript für rotierende Datensicherung: Hallo, ich beschäftige mich erst seit ein paar Wochen mit der Shell und habe mich entschlossen meine ersten Scripterfahrungen in diesem kleinen...
  3. Shellscript unerwartetes Dateiende

    Shellscript unerwartetes Dateiende: Hallo zusammen, folgendes Script führe ich in einer .bat via cygwin und curl aus. Beim Ausführen erhalte ich die einen Syntaxfehler:...
  4. shell-script mit plink starten

    shell-script mit plink starten: Hallo, auf meinem kleinen QNAP-Backupserver möchte ich von meinem Windows 7 PC mittels Windows-Batch ein kleines shell script starten. So sieht...
  5. Einfaches Shellscript - dateinamen ändern

    Einfaches Shellscript - dateinamen ändern: Hey, kann mir jemand vielleicht bei diesem miniscript helfen? ich habe dateien die folgendermaßen aussehen MM-DD-YY-dateiname und...