Problem mit Startscript

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hallo Forum,

    beim Versuch, ein Startscript zu erstellen, treten unerwartete Probleme auf.

    Trotz Vorgehens nach Tutorials wie z.B.

    Turael
    10. Juni 2013 um 21:27

    oder

    http://jankarres.de/2014/07/raspbe…men-einrichten/

    kommen Fehler ohne Ende.
    Ich möchte eine einfache Routine schreiben, die beim Systemstart eine Datei kopiert.
    Die Sache hatte ich bereits am Laufen. Um alles fehlerfrei zu bekommen, habe ich ein ganz neues System (wheezy vom 5.5.2015) neu installiert und dann das bereits erprobte Startscript versucht laufen zu lassen. Ging nicht.

    Deshalb versuchte ich die Beispielscripte der beiden Tutorials einfach ohne Änderung zum Laufen zu kriegen. Die Datei war jeweils ausführbar gemacht und sollte durch direkten Aufruf laufen. Ging aber erst, als ich sh vor dem Dateinamen eingab. Den gleichen Effekt fand ich auch bei einem Testscript (Zweizeiler, Shebang in der ersten Zeile und echo in der zweiten), ausführbar (jeder), funktioniert nur durch Voranstellen von "sh".
    Wenn ich nun sh vor die Beispielscripte stelle, kommt die Fehlermeldung: Syntax error: word unexpected (expecting "in").

    Beim Studium anderer Threads bin ich auf ähnliche Fehler gestoßen, die für mich die Frage aufwerfen: kann hier eine Änderung im neuesten Wheezy vorliegen, die die Interpretation der Scripte anders als bei der Version vom Februar laufen lässt.

    RD.

  • Hallo rapidochol,

    in Unkenntnis der bei Dir entstehenden Fehlermeldungen kann ich nur folgendes mutmaßen:
    1. Wenn Dein Skript nur durch Voranstellen von [font="Courier New"]sh[/font] funktioniert, dann ist es auf dem neuen Pi entweder nicht ausführbar gemacht - oder der Shebang ist nicht korrekt.
    2. [font="Courier New"]sh[/font] sollte nicht mehr verwendet werden, weil [font="Courier New"]bash[/font] die bessere Variante darstellt
    3. Jetzt gibt es verschiedene Möglichkeiten, ein Programm während des Boot-Prozesses zu starten. Je nach Run-Level sind Ausgaben möglich oder nicht möglich.
    4. Fehlermeldungen entstehen nicht einfach so. Sie können als Hilfeschrei eines elektronischen Systems gedeutet werden "Hilf mir! Folgendes irritiert mich:". Fehlermeldungen enthalten fast ausnahmslos den Schlüssel zur Lösung.

    Alles Weitere artet in hilfloses Raten um, solange hier niemand ahnen kann, wie Du das Startscript eingebunden hast. Wie mein Vorrater auch schon angesprochen hat: Dein Script und weitere Informationen würden hier echt weiterhelfen...

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Einmal editiert, zuletzt von Andreas (10. Juli 2015 um 09:00)

  • Normalerweise ist sh ein symlink auf einen aktuellen Interpreter (Bei Ubuntu standardmäßig Dash) sh als Interpreter zu wählen ist daher nichts schlechtes... Vom Originalen sh sollte man natürlich wirklich Abstand nehmen, völlig veraltet.

  • Hallo Euch allen,

    vielen Dank für die freundlichen Antworten.

    Wie verlangt habe ich mein Script angehängt. Um es hochladen zu können, habe ich es in .txt umbenannt.
    Original hat es keine Namenserweiterung. Ich hatte es ursprünglich nicht mitgeschickt, da es eigentlich nur eine gerinfügig veränderte Kopie aus dem Tutorial ist.
    Dateieigenschaften sind u.a. Dateityp Shell-Skript, Berechtigung Ausführen : Jeder
    In einem Tut. war beschrieben, das Skript sei vor dem Aktivieren über update-rc.d durch testweises Ausführen zu überprüfen habe ich dies versucht:
    _________________________________________________________________________________________________________________


    _________________________________________________________________________________________________________________


    Bitte entschuldigt meine Anfängerunkenntnis.
    @Magic_M: Ist die Verwendung von Code Tags so richtig?.

    Nochmals vielen Dank
    RD

  • den ersten Fehler habe ich jetzt gefunden: Die früher funktionierende Skriptdatei habe ich vor der Neuinstallation auf meinem Win-Rechner gespeichert und zur besseren Lesbarkeit editiert. Dadurch wurde die Win-Zeilenschaltung eingebaut (0D 0A). Raspbian benutzt dafür nur 0A. Das zusätzliche Byte 0D wird dann falsch interpretiert.

    Damit ist das Problem noch nicht gelöst.

    Ich habe also das Miniskript test2 erstellt:

    Bash
    #!/bin/sh
    echo "geht"

    Wenn ich das System mit Shebang richtig verstanden habe, sollte sich jetzt das Skript (Ausführen:Jeder) direkt aufrufen lassen. Geht aber nicht so wie im Tut. beschrieben sondern:

    Code
    pi@raspberrypi ~ $ cd Desktop
    pi@raspberrypi ~/Desktop $ dir
    Fehlermeldungen.txt    kopiere.sh test2
    Installationsprotokoll.txt  test1 WifiConfig_fehlt.txt
    pi@raspberrypi ~/Desktop $ test2
    bash: test2: Kommando nicht gefunden.
    pi@raspberrypi ~/Desktop $ ./test2
    geht
    pi@raspberrypi ~/Desktop $


    Was bedeutet die Fehlermeldung Kommando nicht gefunden?

    Viele Grüße
    RD

    PS. gibt es für Raspberry Pi einen schönen HexEditor?

  • Code
    pi@raspberrypi ~/Desktop $ test2
    bash: test2: Kommando nicht gefunden.


    Was bedeutet die Fehlermeldung Kommando nicht gefunden?

    Dass test2 sich nicht in den Verzeichnissen der PATH-Variable befindet.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!