Problem: syntax error near unexpected token `done'

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von villiboy, 05.01.2006.

  1. #1 villiboy, 05.01.2006
    villiboy

    villiboy Mitglied

    Dabei seit:
    07.04.2005
    Beiträge:
    37
    Zustimmungen:
    0
    hi leute,
    hab beim folgenden code probleme!!

    #!/bin/bash
    lauf=0
    ende=5
    while [ $lauf -le $ende ]
    do
    find / -atime -6
    lauf= expr $lauf+1
    done

    Fehler: syntax error near unexpected token `done'

    kann mir da wer weiter helfen? wäre echt super!!

    danke
     
  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. #2 Xanti, 05.01.2006
    Zuletzt bearbeitet: 05.01.2006
    Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Aus

    Code:
    lauf= expr $lauf+1
    mach

    Code:
    lauf=$(expr $lauf + 1)
    Gruss, Phorus

    edit: Du kannst für obige Zeile auch

    Code:
    ((lauf++))
    schreiben.
     
  4. #3 villiboy, 05.01.2006
    Zuletzt bearbeitet: 05.01.2006
    villiboy

    villiboy Mitglied

    Dabei seit:
    07.04.2005
    Beiträge:
    37
    Zustimmungen:
    0
    danke für die schnelle antwort aber der fehler bleibt leider ...

    edit: jetzt kommt die fehlermeldung: syntax error near unexpected token `
    shell1.sh: `((lauf++))
     
  5. #4 Wolfgang, 05.01.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Bei mir tut es, aber sicher nicht das was du wills.
    Es läuft endlos.
    Dem Zuweisungsoperator = darf kein Leerzeichen folgen.
    Also würde ich es mal mit :
    lauf=$(($lauf+1)); versuchen.
    Gruß Wolfgang
     
  6. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Hmm, sehe sonst keinen Fehler. Läuft auch fehlerfrei bei mir. Editierst Du vielleicht unter Windows?
     
  7. #6 villiboy, 05.01.2006
    Zuletzt bearbeitet: 05.01.2006
    villiboy

    villiboy Mitglied

    Dabei seit:
    07.04.2005
    Beiträge:
    37
    Zustimmungen:
    0
    hallo wolfgang,
    bei mir geht es auch nach deiner vorstellung noch nicht. an was könnte es denn liegen? es kommt immer die doofe fehlermeldung mit dem done?
    liegt es vieleicht an der bash?

    danke

    neee unter suse linux 9.2 editiere ich!!!
     
  8. #7 ninguno, 05.01.2006
    ninguno

    ninguno Tripel-As

    Dabei seit:
    13.05.2005
    Beiträge:
    162
    Zustimmungen:
    0
    bist du sicher dass windows nicht im spiel ist? funktionieren denn andere scripts die du erstellst?
     
  9. #8 villiboy, 05.01.2006
    villiboy

    villiboy Mitglied

    Dabei seit:
    07.04.2005
    Beiträge:
    37
    Zustimmungen:
    0
    ja windows ist auf alle fälle nicht im spiel!! andere skripte funktionieren ja nur dieses nicht!!! so ein müll!!!
    mhh ...
     
  10. #9 ninguno, 05.01.2006
    ninguno

    ninguno Tripel-As

    Dabei seit:
    13.05.2005
    Beiträge:
    162
    Zustimmungen:
    0
    so gehts auch nicht?
    Code:
    lauf=0
    ende=5
    
    while (($((++lauf)) <= $ende )); do
      find / -atime -6
    done
     
  11. hmhweb

    hmhweb Mitglied

    Dabei seit:
    29.11.2004
    Beiträge:
    46
    Zustimmungen:
    0
    hi,
    bei mir (SuSE 9.2, bash 3.00.0(1) ) funktioniert es mit

    Code:
    lauf=`expr $lauf + 1`
    
    wobei meiner Meinung nach wesentlich ist, um das + blanks zu haben.
    Der Rest ist mit den Linksticks ist halt nur altmodisch :oldman

    hmh
     
  12. #11 Wolfgang, 05.01.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Wenn du mal mit set -x arbeitest, kannst du sehen was deine Shell interpretiert.

    Gruß Wolfgang
     
  13. #12 villiboy, 05.01.2006
    Zuletzt bearbeitet: 05.01.2006
    villiboy

    villiboy Mitglied

    Dabei seit:
    07.04.2005
    Beiträge:
    37
    Zustimmungen:
    0
    danke für euere mühen aber ich habe es jetzt mit allen varianten probiert und bei mir geht es immer noch nicht!! immer noch die gleich fehlermeldung!! das ist doch zum verzweifeln! kann es sein, dass ich irgendwie ein update brauche?

    fgabe31.sh: line 6: syntax error near unexpected token `done'
    Aufgabe31.sh: line 6: `done'
    martin@linux:~> set -x Aufgabe31.sh
    ++ ppwd 2
    ++ local _t=2 _w _x
    ++ test -n 2
    ++ test 2 = 2
    ++ _t=pts/2
    ++ test -O /dev/pts/2
    +++ dirs +0
    ++ _w='~'
    ++ _x=x
    ++ test 1 -le 18
    ++ echo -en '\e]2;martin@linux:~\007\e]1;linux\007'
    martin@linux:~>
     
  14. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Kannst Du nochmal Dein momentanes Skript schicken, am besten per cut-and-paste? Dann kann man es besser ueberpruefen, auch Leerzeichen sind, wie Wolfgang_1 schon gesagt hat.
    Was ergibt 'bash --version'?

    Leg die Datei auch nochmal neu an, d.h., loesche sie und schreibe sie neu. Vielleicht hat sich ein Zeichen eingeschlichen, das man nicht sieht.

    Tut bei Dir das ganze mit einer for-Schleife?
    Code:
    #/bin/bash
    
    for (( i = 0; i <=5; i++)); do
       find / -atime -6
    done
    
     
  15. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  16. #14 ninguno, 05.01.2006
    ninguno

    ninguno Tripel-As

    Dabei seit:
    13.05.2005
    Beiträge:
    162
    Zustimmungen:
    0
    hmm da ist auch nicht wirklich was zu sehen.
    was hast du denn für ne bash version
    Code:
    bash --version
    und kannst du mal nen hex dump von dem script machen, vielleicht hat sich doch irgendwo ein sonderzeichen eingeschlichen
    Code:
    od --format=x Aufgabe31.sh
     
  17. #15 villiboy, 05.01.2006
    Zuletzt bearbeitet: 05.01.2006
    villiboy

    villiboy Mitglied

    Dabei seit:
    07.04.2005
    Beiträge:
    37
    Zustimmungen:
    0
    martin@linux:~> chmod +x Aufgabe31.sh
    martin@linux:~> bash Aufgabe31.sh
    : command not found2:
    'ufgabe31.sh: line 3: syntax error near unexpected token `do
    'ufgabe31.sh: line 3: `for (( i = 0; i <=5; i++)); do
    martin@linux:~> chmod +x Aufgabe31.sh
    martin@linux:~> bash Aufgabe31.sh
    : command not found2:
    'ufgabe31.sh: line 3: syntax error near unexpected token `do
    'ufgabe31.sh: line 3: `for (( i = 0; i <=5; i++)) do
    martin@linux:~> bash --version
    GNU bash, version 3.00.0(1)-release (i586-suse-linux)
    Copyright (C) 2004 Free Software Foundation, Inc.
    martin@linux:~> od --format=x Aufgabe31.sh
    0000000 622f2123 622f6e69 0d687361 660a0d0a
    0000020 2820726f 20692028 3b30203d 3c206920
    0000040 203b353d 292b2b69 64202029 660a0d6f
    0000060 20646e69 612d202f 656d6974 0d362d20
    0000100 6e6f640a 00000065
    0000105
    martin@linux:~>


    #!/bin/bash
    lauf=0
    ende=5
    while (($((++lauf)) <= $ende ));
    do
    find / -atime -6
    done
    martin@linux:~> chmod +x Aufgabe31.sh
    martin@linux:~> bash Aufgabe31.sh
    Aufgabe31.sh: line 7: syntax error near unexpected token `done'
    Aufgabe31.sh: line 7: `done'
    martin@linux:~
     
Thema: Problem: syntax error near unexpected token `done'
Besucher kamen mit folgenden Suchen
  1. syntax error near unexpected token done

    ,
  2. Error: QVX_CONNECT_ERROR: Unexpected SQL Token:

Die Seite wird geladen...

Problem: syntax error near unexpected token `done' - Ähnliche Themen

  1. probleme mit syntax

    probleme mit syntax: Sers Leute ich mal wieder :> ich hab ein kleines Prob mit meiner shellsyntax #!bin/ksh set cpu `vmstat 2 2 | tail -1` cpu_all=${cpu[14]}...
  2. SED Syntaxproblem

    SED Syntaxproblem: Hallo ich moechte die Ausgabe aus folgendem Konstrukt an eine Variable uebergeben: #!/bin/sh mplayer -vo null -ao null -frames 0 -identify...
  3. iptables Problem mit der Syntax ethx

    iptables Problem mit der Syntax ethx: Hallo, ich habe ein Script für meine eigenen iptables rules geschrieben. Das Startscript funktioniert wunderbar. Die Regeln werden geladen....
  4. Syntax problem bei "grep"

    Syntax problem bei "grep": Halli Hallo, ich lasse eine Datei Zeilenweise auslesen und jeweils die aktuelle Zeile in der Variable $ZEILE speichern. jetzt gibt es einige...
  5. rsh mit awk Syntax problem

    rsh mit awk Syntax problem: halli hallo, ich habe ein Syntax problem bei folgendem Aufruf: rsh $SERVER -n "cat $LOGGESTERN ö grep PrintFile ö grep $SUCH ö awk -v...