ERLEDIGT
JA
JA
ANTWORTEN
15
15
ZUGRIFFE
3585
3585
EMPFEHLEN
-
03.05.06 11:01 #1
- Registriert seit
- May 2006
- Ort
- Hamburg
- Beiträge
- 43
Moin Moin,
ich habe mit dem folgendem Script ein Problem:
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 ScriptCode :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
. 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? - AhaGeändert von Mindwinder (03.05.06 um 12:38 Uhr)
-
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 von Friedrich Nietzsche
-
Ersetze mal
durchCode :1
#!bin/bash
Code :1
#!/bin/bash
-
03.05.06 11:42 #4
- 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
-
03.05.06 11:52 #5
Mach mal ein chmod 755 für dein Script. Das wars bei mir warum ich das nicht ohne sh ./script ausführen konnte
-
03.05.06 11:59 #6
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Hi.
Warum hast du denn dann nicht das richtige Skript gepostet?
Zitat von Mindwinder

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.
-
Also "unrecognized token near do" impliziert ja einen Fehler in deinen regulären Ausdrücken oder nicht? Hast du die mal überprüft?
-
03.05.06 12:13 #8
- 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
-
03.05.06 12:17 #9
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
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).
Zitat von Mindwinder
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.
-
03.05.06 12:21 #10
- 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
-
03.05.06 12:26 #11
- 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.
-
03.05.06 12:37 #12
- 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
-
03.05.06 13:21 #13
- 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.
-
03.05.06 13:37 #14
- 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
-
03.05.06 14:21 #15
- 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
-
Script funktioniert nicht
Von next1 im Forum PHPAntworten: 9Letzter Beitrag: 23.02.10, 17:42 -
Script funktioniert nicht
Von nick_beat20 im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 20.10.08, 12:36 -
Script funktioniert nicht im IE
Von qwerty12309 im Forum Javascript & AjaxAntworten: 9Letzter Beitrag: 22.11.07, 16:07 -
Shell Script mit If Schleife funktioniert nicht
Von The_Rave im Forum Sonstige SprachenAntworten: 1Letzter Beitrag: 13.09.05, 19:43 -
Script funktioniert nicht
Von Baerwatz im Forum Javascript & AjaxAntworten: 5Letzter Beitrag: 12.05.04, 10:30





Zitieren
Login





