tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
JA
ANTWORTEN
15
ZUGRIFFE
3585
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Mindwinder Mindwinder ist offline Mitglied Bronze
    Registriert seit
    May 2006
    Ort
    Hamburg
    Beiträge
    43
    Moin Moin,
    ich habe mit dem folgendem Script ein Problem:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    #!/bin/bash
    OUTDIR=/xxx/out/stats/
    LOGDIR=/xxx/logs/
    for j in [0-z]; do                                 #schleife bearbeitet vrz 0-z
       for i in $LOGDIR$j/*-access_log; do    #schleife über logfiles
          if [ -f $i ]; then                                   #wenn Datei
             vrz="${i//-access_log/}"                     #entferne -access_log v Str
             vrz="${vrz//${LOGDIR}/${OUTDIR}}"    #tausche log dir mit outdir
             dname="${vrz//${OUTDIR}${j}\//}"       #entferne outdir für domnamen
             echo $vrz                                         #überflüssige ausgabe:)
             if [ ! -d $vrz ]; then                             #wenn verz noch nicht vorhanden
                mkdir $vrz; fi                                  # dann erstellen
             webalizer -n $dname -o $vrz $i;          #webalizer nen par ml ausführen
             echo $dname; fi;                               # noch ne überflüssige ausg
       done;
    done
    es klappt alles prima solange ich das Script direkt in die Shell hacke, nur sobald ich es als Script versuche laufen zu lassen, bekome ich stehts eine Fehlermeldung n der Richtung unregognized Token near do. Es verhält sich gradezu so als kenne der keine For Schleife im Script . Hab mir gestern bereits bei der Konkurenz und Google die Finger wundgesucht, jedoch nix gefunden. Aufrufen tue ich das script dann übrigens mit sh ./scriptname.sh oder . ./scriptname.sh oder einfach ./scriptname - klappt alles nicht .
    Zum besseren Verständnis: das Script liegt im Verzeichnis logs welches Unterverzeichnisse von 0-z enthält in welchen wiederum meine Logfiles liegen.

    Hoffe mir kann jemand helfen.

    PS: Hatte irgedwie keinen Vorstellungsthread gefunden daher kurz zu meiner Person...
    wohnhaft in Hamburg, studiere im 3 Sem Informatik, versuche einen Linux Server zu administrieren und werde sicherlich noch mit zahlreichen Fragen kommen. z.B.: Wieso klappt das Ausrücken der Kommentare nicht? - Aha
    Geändert von Mindwinder (03.05.06 um 12:38 Uhr)
     

  2. #2
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    Willkommen im Forum.

    Im normalen Text werden solche Aktionen wie mehrfache Spaces oder Tabs durch einfach Spaces ersetzt.
    Wenn Du mit den Code-Tags [ code ] [ /code ] (natuerlich ohne die Leerzeichen) arbeitest werden auch solche "Formatierungen" beibehalten.
     
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  3. #3
    alois alois ist offline Mitglied Gold
    Registriert seit
    Aug 2002
    Ort
    Oberhausen (NRW)
    Beiträge
    137
    Ersetze mal
    Code :
    1
    
    #!bin/bash
    durch
    Code :
    1
    
    #!/bin/bash
     

  4. #4
    Mindwinder Mindwinder ist offline Mitglied Bronze
    Registriert seit
    May 2006
    Ort
    Hamburg
    Beiträge
    43
    Lost in Transmission - danke war leider nur hier ein Tippfehler. Im richtigen Script stehts korrekt, mein Problem besteht also weiterhin .

    Nette Grüße,

    Mindwinder
     

  5. #5
    Avatar von GalaxyWarrior
    GalaxyWarrior GalaxyWarrior ist offline Mitglied Platin
    Registriert seit
    Jan 2004
    Ort
    Grünberg (Hessen)
    Beiträge
    592
    Mach mal ein chmod 755 für dein Script. Das wars bei mir warum ich das nicht ohne sh ./script ausführen konnte
     

  6. #6
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Hi.
    Zitat Zitat von Mindwinder
    Lost in Transmission - danke war leider nur hier ein Tippfehler. Im richtigen Script stehts korrekt
    Warum hast du denn dann nicht das richtige Skript gepostet?

    Starte das Skript doch bitte mal folgendermaßen und poste das Resultat:
    Code bash:
    1
    
    bash -xv scriptname.sh

    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  7. #7
    alois alois ist offline Mitglied Gold
    Registriert seit
    Aug 2002
    Ort
    Oberhausen (NRW)
    Beiträge
    137
    Also "unrecognized token near do" impliziert ja einen Fehler in deinen regulären Ausdrücken oder nicht? Hast du die mal überprüft?
     

  8. #8
    Mindwinder Mindwinder ist offline Mitglied Bronze
    Registriert seit
    May 2006
    Ort
    Hamburg
    Beiträge
    43
    Also da das script via Copy & Paste in die Shell funktioniert, gehe ich mal davon aus die die Ausdrücke richtig sind. Geht so ein Shell Script Pfad technisch vielleicht von ./bin/bash oder so aus und nicht vom Ausführungsort? Dann würde der Ausdruck natürlich keinen Sinn machen, dürfte aber meineserachtens dennoch keinen Fehler produzieren.

    Gruß Mindwinder
     

  9. #9
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Zitat Zitat von Mindwinder
    Also da das script via Copy & Paste in die Shell funktioniert, gehe ich mal davon aus die die Ausdrücke richtig sind. Geht so ein Shell Script Pfad technisch vielleicht von ./bin/bash oder so aus und nicht vom Ausführungsort?
    Relative Pfadangaben werden natürlich immer vom Ausführungsort aus aufgelöst (nicht vom Pfad der Shell aus und auch nicht vom Pfad des Skripts aus).

    Was passiert nun wenn du das Skript mit den Optionen -xv ausführst?

    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  10. #10
    Mindwinder Mindwinder ist offline Mitglied Bronze
    Registriert seit
    May 2006
    Ort
    Hamburg
    Beiträge
    43
    + $'\r'
    : command not found:
    OUTDIR=/xxx/out/stats/
    + OUTDIR=/xxx/logs/stats/
    LOGDIR=/xxx/logs/
    + LOGDIR=/xxx/logs/
    for j in [0-z]; do
    'ebalize.sh: line 5: syntax error near unexpected token `do
    'ebalize.sh: line 5: `for j in [0-z]; do
     

  11. #11
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Kann es sein das du das Skript im DOS Modus mit CR/LF gespeichert hast?

    (kann es sein das das nicht die komplette Ausgabe ist ?)

    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  12. #12
    Mindwinder Mindwinder ist offline Mitglied Bronze
    Registriert seit
    May 2006
    Ort
    Hamburg
    Beiträge
    43
    Das erste war nur die Leerzeile und nicht so wichtig habe sie entfernt. Jetzt siehts so aus...

    #!/bin/bash
    OUTDIR=/xxx/out/stats/
    + OUTDIR=/xxx/out/stats/
    LOGDIR=/xxx/logs/
    + LOGDIR=/xxx/logs/
    for j in [0-z]; do
    'ebalize.sh: line 4: syntax error near unexpected token `do
    'ebalize.sh: line 4: `for j in [0-z]; do

    und ja das ist die ganze Ausgabe - und ich benutze den vi auf der shell

    Netten Gruß Mindwinder
     

  13. #13
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Entferne doch mal bitte alle CR Zeichen - nur zur Sicherheit das nicht evtl. doch die Datei mit DOS Zeilenendungen gespeichert wurde:
    Code bash:
    1
    
    tr -d '\r' < script.sh > script2.sh

    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  14. #14
    Mindwinder Mindwinder ist offline Mitglied Bronze
    Registriert seit
    May 2006
    Ort
    Hamburg
    Beiträge
    43
    Danke Danke Danke, dass war es dann doch jubel freu küß die Füße - man ist das peinlich - kannte den Befehl nicht - wieder was gelernt *freu*.
    Haut der vi mir über die Shell ggf. trotzdem die \r mit rein? Gibt es eine Option um das beim schreiben abzustellen? Benutze in der Regel einfach wq bzw. halt w zum schreiben.

    Gruß Mindwinder
     

  15. #15
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Standardmäßig sollte der VI(M) keine Dateien im DOS Format schreiben es sei denn man benutzt den VI unter DOS.

    Du kannst das fileformat setzen um zwischen den verschiedenen Formaten beim Speichern zu wechseln:
    Code :
    1
    
    :set ff=unix

    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

Ähnliche Themen

  1. Script funktioniert nicht
    Von next1 im Forum PHP
    Antworten: 9
    Letzter Beitrag: 23.02.10, 17:42
  2. Script funktioniert nicht
    Von nick_beat20 im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 20.10.08, 12:36
  3. Script funktioniert nicht im IE
    Von qwerty12309 im Forum Javascript & Ajax
    Antworten: 9
    Letzter Beitrag: 22.11.07, 16:07
  4. Shell Script mit If Schleife funktioniert nicht
    Von The_Rave im Forum Sonstige Sprachen
    Antworten: 1
    Letzter Beitrag: 13.09.05, 19:43
  5. Script funktioniert nicht
    Von Baerwatz im Forum Javascript & Ajax
    Antworten: 5
    Letzter Beitrag: 12.05.04, 10:30