Ergebnis 1 bis 6 von 6

Thema:

  1. #1
    lab
    lab ist offline
    Neues MU Mitglied
    Avatar von lab
    Dabei seit
    08.2006
    Ort
    Schweiz
    Beiträge
    67

    skript.command >> cannot execute binary file

    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. #2
    maceis
    maceis ist offline
    Moderator
    Avatar von maceis
    Dabei seit
    09.2003
    Ort
    ʇooɹ/ɹɐʌ/
    Beiträge
    16.537
    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.

    Kaum macht man´s ƃıʇɥɔıɹ, schon funktioniert es. — Ein Teufelskreis!
    Homepage

  3. #3
    lab
    lab ist offline
    Neues MU Mitglied
    Avatar von lab
    Dabei seit
    08.2006
    Ort
    Schweiz
    Beiträge
    67
    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. #4
    maceis
    maceis ist offline
    Moderator
    Avatar von maceis
    Dabei seit
    09.2003
    Ort
    ʇooɹ/ɹɐʌ/
    Beiträge
    16.537
    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.

    Kaum macht man´s ƃıʇɥɔıɹ, schon funktioniert es. — Ein Teufelskreis!
    Homepage

  5. #5
    lab
    lab ist offline
    Neues MU Mitglied
    Avatar von lab
    Dabei seit
    08.2006
    Ort
    Schweiz
    Beiträge
    67
    vim-Installationsanleitung:

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

    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. #6
    maceis
    maceis ist offline
    Moderator
    Avatar von maceis
    Dabei seit
    09.2003
    Ort
    ʇooɹ/ɹɐʌ/
    Beiträge
    16.537
    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.

    Kaum macht man´s ƃıʇɥɔıɹ, schon funktioniert es. — Ein Teufelskreis!
    Homepage