vice

skript.command >> cannot execute binary file

Dieses Thema im Forum "Mac OS X - UNIX" wurde erstellt von lab, 05.02.2007.

  1. lab

    lab Thread Starter MU Mitglied

    Registriert seit:
    02.08.2006
    Beiträge:
    67
    Zustimmungen:
    3
    Nachdem mein schöner UNIX-Befehl länger einwandfrei funktioniert hat, krieg ich nun die Fehlermeldung "cannot execute binary file":

    Code:
    -bash: /Users/lab/Documents/skript.command: cannot execute binary file
    Nicht funktioniert hat:
    * sh skript.sh
    * chmod +x skript.command

    Ich krieg folgenden Output:
    * file skript.command >> Little-endian UTF-16 Unicode character data
    * ls -le skript.command >> -rwxr-xr-x 1 lab lab 3148 Feb 5 18:11 /Users/lab/skript.command

    Kann mir das Verhalten nicht erklären. Kann das was damit zu tun haben, dass ich den Skript von "DoSomethingWhen" beim Einstecken eines Volumes starten lassen wollte? (Würde mich überraschen, erwähn' es aber der Vollständigkeit halber...

    Vielen Dank für eure Hilfe!
     
  2. maceis

    maceis Moderator

    Registriert seit:
    24.09.2003
    Beiträge:
    16.679
    Zustimmungen:
    584
    Das "chmod +x skript.command" hatoffensichtich schon funktioniert.
    "nicht funktioniert" ist übrigens eine sehr schlechte Fehlerbeschreibung.
    Besser:
    - das habe ich gemacht
    - das habe ich erwartet, das passiert
    - das ist stattdessen passiert

    Das hier
    "file skript.command >> Little-endian UTF-16 Unicode character data"
    macht mich etwas stutzig.
    Irgendwie sollte das so etwas wie "Bourne-Again shell script text executable" kommen.
     
  3. lab

    lab Thread Starter MU Mitglied

    Registriert seit:
    02.08.2006
    Beiträge:
    67
    Zustimmungen:
    3
    Vielen Dank, maceis, du hast mich auf die richtige Fährte gebracht! Kann zwar nicht genau erklären, warum - aber wenn ich:

    a) In TextEdit ein neues File namens "skript" erstelle (ohne Suffix), den Inhalt reinkopiere, dann chmode, dann .command anhänge
    >> Little-endian UTF-16 Unicode character data
    >> cannot execute binary file

    b) In TextEdit ein neues File namens "file" erstelle (ohne Suffix), chmode, in "skript.command" umbenenne, dann in TextEdit öffne und Inhalt reinkopiere, sichere, auf Aufforderung nochmals chmode
    >> Bourne shell script text executable
    >> Skript wird ausgeführt...

    Meine naive "Erklärung" (bin noch nicht so gut in UNIX-Kausalzusammenhängen...): Könnte was mit DoSomethingWhen bzw launchd zu tun haben (???)
     
  4. maceis

    maceis Moderator

    Registriert seit:
    24.09.2003
    Beiträge:
    16.679
    Zustimmungen:
    584
    Ich glaube eher, dass das was mit Textedit zu tun hat.
    Textedit ist IMHO nicht unbedingt der beste Editor für Skripte u.ä.

    Ich persönlich verwende vim. Der ist zwar nicht unbedingt "anfängerfreundlich", dafür aber sehr mächtig. Eine einfacher Alternative wäre z.B nano (im Terminal). Gibt auch ne integrierte Hilfe.
     
  5. lab

    lab Thread Starter MU Mitglied

    Registriert seit:
    02.08.2006
    Beiträge:
    67
    Zustimmungen:
    3
    vim-Installationsanleitung:

    Code:
    $ bunzip2 vim7.0.tar.bz2
    $ tar xf vim7.0.tar
    $ cd vim70
    $ mv Vim.app /Applications/Vim.app
    
    Hmmm, :schnuller:

    Habe noch etwas weitergesucht und Smultron gefunden und es damit probiert - et voilà - ça fonctionne parfaitement... Scheint tatsächlich am Editor zu liegen! Merci!
     
  6. maceis

    maceis Moderator

    Registriert seit:
    24.09.2003
    Beiträge:
    16.679
    Zustimmungen:
    584
    Du brauchst nicht unbedingt vim 7.0.
    Auf Tiger ist vim 6.2 vorinstalliert.
    Ich persönlich verwende auch nicht vim.app. Ist mir zu behäbig.

    Es gibt aber auch eine ganze Reihe von grafischen Skript- und Codeeditoren.
    Smultron soll ja z.B. sehr beliebt sein.