[UNIX] .sh-Script Fehler: unexpected "done"

Dieses Thema im Forum "Linux & BSD" wurde erstellt von YOOUI, 30. November 2012 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 30. November 2012
    Hallo RR-Comunity,

    ich bastel gerade das erste mal an einem .sh Script und bekommen immer den selben Fehler, obwohl die Syntax eigentlich Stimmen müsste ...? (Ja ich hab auch schon gegoogelt, aber entweder suche ich nach dem Falschen....?( )
    Quellcode:
    Spoiler
    Code:
    # Start des telnet-daemons
    echo Starting telnetd
    /usr/sbin/telnetd -l /sbin/ar7login
    # warten, bis das DSL da ist
    echo Waiting for internet connection
    while !(ping -c 1 www.google.de); do
    sleep 5
    done 
    
    # tun-Device anlegen, falls noch nicht vorhanden
    echo Creating TUN device
    mknod /var/tmp/tun c 10 200
    
    # start OpenVPN (Dateinamen ggf. anpassen)
    echo Starting OpenVPN
    cd /var/usb/openvpn
    ./openvpn --config ovpn.conf #--daemon
    
    Fehlermeldung:
    Spoiler
    /var/usb/openvpn/startup.sh: line 8: syntax error: unexpected "done" (expecting "do")

    Was mach ich falsch ??

    Mit freundlichen Grüßen,

    YOOUI
     
  2. 30. November 2012
    AW: [UNIX] .sh-Script Fehler: unexpected "done"

    Hey,

    die Syntax ist manchmal verwirrend. Die runden Klammern um den Ping Befehl müssen weg. Zwischen ! und ping muss außerdem ein Leerzeichen stehen, sonst will die Shell history-expansion machen. So funktionierts bei mir:
    Code:
    while ! ping -c 1 192.168.178.1; do
    echo no ping 
    done
     
    1 Person gefällt das.
  3. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.