Shell Inkompatibilitäten?

Diskutiere mit über: Shell Inkompatibilitäten? im Mac OS X - Unix & Terminal Forum

  1. marrb

    marrb Thread Starter MacUser Mitglied

    Beiträge:
    32
    Zustimmungen:
    0
    Registriert seit:
    20.01.2006
    Ich möchte ein Skript ausführen, das mit der Zeile
    #!/bin/sh
    beginnt. Ich bekomme dabei immer die Rückmeldung, dass das File nicht existiert (no such file or directory). (Das File existiert aber ganz sicher) Wenn ich versuche, als Root das Skript auszuführen, sieht die Fehlermeldung so aus:
    martin-imac:/Users/martin/Desktop root# ./backup_home
    /bin/echo: bad interpreter: No such file or directory

    Das scheint für mich darauf hinzudeuten, dass irgendwas mit der Shell nicht stimmt. Kann es sein, dass das Standardterminal eine andere Shell nutzt als die, die versuche aufzurufen und es dann knallt? Was könnte sonst das Problem sein? Bin für jeden Tipp dankbar!

    Gruß Martin
    -----------------------------
    iMac G5 mit OS X 10.4.6
     
  2. teejot

    teejot MacUser Mitglied

    Beiträge:
    29
    Zustimmungen:
    0
    Registriert seit:
    27.12.2003
    Hi,
    kannst Du mal das ganze Script posten? Der Fehler deutet eher darauf hin, dass er "echo" als Interpreter nutzen will. Ansonsten solltest Du auch die "sh" als Shell für das Script nutzen können. Das muss ein anderer Fehler sein. Also entweder überprüfst Du nochmal die oberen Zeilen Deines Scriptes oder postest es nochmal.

    gruss
     
  3. dpr

    dpr MacUser Mitglied

    Beiträge:
    519
    Zustimmungen:
    0
    Registriert seit:
    04.04.2006
    Führe Dein Shell-Script einmal mittels

    Code:
    sh -x ./backup_home
    
    aus. Dann siehst Du, welches Deiner enthaltenen Konstrukte den Fehler wirft.
     
  4. marrb

    marrb Thread Starter MacUser Mitglied

    Beiträge:
    32
    Zustimmungen:
    0
    Registriert seit:
    20.01.2006
    Das Script, das ich ausführen möchte, ist direkt aus den rsync-Backup "Tipps und Tricks" kopiert und sieht so aus:

    #!/bin/sh

    #Variablen fuer die Pfade
    declare quelle="$HOME"
    declare ziel="<ziel>"

    #Log schreiben (Anfangszeit)
    /bin/echo "Backup begonnen um:" >> $ziel/backup.log
    /bin/date >> $ziel/backup.log

    #Backup ausführen und protokollieren
    /usr/bin/time /usr/bin/rsync -avE $quelle/ $ziel/ > $ziel/protokoll.log

    #Log schreiben (Endzeit)
    /bin/echo "Backup beendet um:" >> $ziel/backup.log
    /bin/date >> $ziel/backup.log
    /bin/echo "--------------------------------------" >> $ziel/backup.log

    Bei den anderen Usern scheint das zu funktionieren, bei mir geht irgendwas schief....
    Den Hinweis mit dem -x Parameter kann ich leider erst heute Abend probieren, werde das Ergebnis dann gleich weitergeben.
    Danke Martin
     
  5. oneOeight

    oneOeight MacUser Mitglied

    Beiträge:
    46.774
    Zustimmungen:
    3.629
    Registriert seit:
    23.11.2004
    declare ziel="<ziel>"

    da ist dein problem...
    du hast das ziel nicht richtig gesetzt....
    so kann das auch nicht klappen
     
  6. TrusterX

    TrusterX MacUser Mitglied

    Beiträge:
    640
    Zustimmungen:
    3
    Registriert seit:
    10.04.2005
    Öffne mal ein terminal und drücke "⌘," anschließend sag mir, welche Schell bei dir läuft!

    Vielleicht hilft uns das weiter...

    Edit: @ oneOeight: Dann würde er eine andere Fehlermeldung bekomen und zwar genauso:
     
  7. TrusterX

    TrusterX MacUser Mitglied

    Beiträge:
    640
    Zustimmungen:
    3
    Registriert seit:
    10.04.2005
    Noch einen Nachtrag für den TE: versuch mal die besagte Datei direkt in der Shell auszuführen also

    /bin/echo "Hello World"
     
  8. autoexec.bat

    autoexec.bat MacUser Mitglied

    Beiträge:
    2.130
    Zustimmungen:
    20
    Registriert seit:
    21.01.2005
    Also wenn ihr mich fragt steckt in dem Shell-Skript irgendwo einfach ne Escape-Sequenz drin wo sie nicht hin gehört. Dann kriegt man nämlich genau solche Fehlermeldungen.

    Ich würde die Zeilen mit dem Echo einfach mal neu tippen.
     
  9. TrusterX

    TrusterX MacUser Mitglied

    Beiträge:
    640
    Zustimmungen:
    3
    Registriert seit:
    10.04.2005
    dann würde es doch hier stehen, er hat ja das script hier aus dem Forum 1:1 kopiert anschließend per chmod 744 startfähig gemacht und ausgeführt.

    Wenn er ne ESC Sequenz drinnen hätte, müsste die dann nicht im Post weiter oben sichtbar sein?
     
  10. marrb

    marrb Thread Starter MacUser Mitglied

    Beiträge:
    32
    Zustimmungen:
    0
    Registriert seit:
    20.01.2006
    Hallo oneOeight,
    da ich grade nicht an meinem Rechner sitze, habe ich nur das Template aus dem Forum rüberkopiert, ohne den Platzhalter zu ersetzen. In meiner realen Skript steht da natürlich der echte Pfad (den ich auch getestet habe).
    Martin
     
Die Seite wird geladen...
Ähnliche Themen - Shell Inkompatibilitäten Forum Datum
suchen von und in shell scripten Mac OS X - Unix & Terminal 01.05.2016
Netzwerkpc über shell öffnen Mac OS X - Unix & Terminal 09.09.2014
shell script ausführung im background Mac OS X - Unix & Terminal 28.04.2014
Suche shellscript schreiber Mac OS X - Unix & Terminal 15.06.2012
Shell Script Command not found Mac OS X - Unix & Terminal 19.03.2012

Diese Seite empfehlen

Benutzerdefinierte Suche