1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Rückgabewert von "do shell script"

Dieses Thema im Forum "AppleScript" wurde erstellt von Daisy, 04.02.06.

  1. Daisy

    Daisy Uelzener Rambour

    Dabei seit:
    14.01.06
    Beiträge:
    366
    Moin,

    vielleicht stehe ich auf der Leitung - aber ich komme nicht drauf. Kann mir jemand folgendes Phänomen erklären (und hat am besten 'ne Lösung, wie man das umgeht):

    Ich habe ein Shell-Script, das eine Bilddatei (JPEG) ausspuckt. Wenn ich die Daten aber ins AppleScript übernehmen will, haben sich einige Bytes geändert. Getestet habe ich wie folgt:

    1. Ausgabe des Shellscripts direkt in eine Datei umgeleitet

    2. Ausgabe des Shellscripts als Rückgabewert von 'do shell script' in eine AS-Variable gespeichert und die dann per AS in eine Datei geschrieben.

    Das Ergebnis von 1. ist ein korrektes JPEG-Bild, das Ergebnis von 2. ein beschädigtes JPG-Bild. Mit hexdump habe ich's verglichen - es weichen nur ganz wenige Bytes ab - die Dateilänge ist identisch. Probiert habe ich es sowohl mit Skript Editor als auch im AppleScript Studio/Xcode 2.2 - beides mit identischem Ergebnis.

    Meine einzige Idee: Versucht AppleScript da irgendwelche Unix-Steuerzeichen (z.B. 0a -> 0d) zu ersetzen, da es da nur Strings erwartet?

    P.S. Die Zuhilfenahme von Temp-Dateien für die Lösung des Problems möchte ich wenn's geht vermeiden.

    Vielen Dank für eure Hilfe!

    Grüße,

    Daisy
     
  2. klausimausi

    klausimausi deaktivierter Benutzer

    Dabei seit:
    05.01.04
    Beiträge:
    836
    Kannst Du vielleicht mal posten, was genau Du machst? AS Skript und shell Skript?
    Dann wäre die Fehlersuche sicher einfacher...


    Gruß

    Klaus
     
  3. Daisy

    Daisy Uelzener Rambour

    Dabei seit:
    14.01.06
    Beiträge:
    366
    Hallo Klaus,

    na klar - hier ein einfaches Besipiel:

    Testfall 1 - das erzeugt ein korrektes JPEG:
    Code:
    do shell script ("jhead -st - '" & theFilePath & "' > \"/Volumes/A/Users/pbg4/thumb2.jpg"\"")
    
    Testfall 2 - da ist das Ergebnis beschädigt:

    Code:
    set rawImageData to (do shell script "jhead -st - '" & theFilePath & "'")
    
    ... write rawImageData to ... etc.
    

    <theFilePath> ist ein Pfad (POSIX) zu einem JPEG-Bild mit EXIF-Thumbnail

    <jhead> ist ein Commandline-Tool, das (unter anderem) die EXIF-Thumbnails aus JPEG-Dateien extrahieren kann - das gibt's hier (direkter Link zur Datei):

    http://www.sentex.net/~mwandel/jhead/os-x/jhead


    Grüße,

    Daisy
     
  4. klausimausi

    klausimausi deaktivierter Benutzer

    Dabei seit:
    05.01.04
    Beiträge:
    836
    Ich könnte mir auch vorstellen, daß das, was pete bezüglich "line endings" gesagt hat, stimmt.

    Hast du das mal ausprobiert?

    Ansonsten hätte ich leider auch keine Idee, außer, dann eben nur den kompletten Shellbefehl zu benutzen ;)


    Gruß

    Klaus
     
  5. Daisy

    Daisy Uelzener Rambour

    Dabei seit:
    14.01.06
    Beiträge:
    366
    Du bist der King, Pete, vielen Dank!

    das mit den line endings wars. Das kannte ich noch nicht - ich nehme an, das wurde erst mit Tiger eingeführt? Wie auch immer - jetzt funktioniert's wieder.

    Vielen Dank auch dir Klaus :)

    Grüße,

    Daisy
     
  6. klausimausi

    klausimausi deaktivierter Benutzer

    Dabei seit:
    05.01.04
    Beiträge:
    836
    Stets zu Diensten, der Herr! :)

    Schamlose Eigenwerbung:
    Ich habe neulich eine kleines Tool (Shareware) für Bilder und Movieframes online gestellt.

    Bei Interesse hier mal schauen, die deutsche Version ist unterwegs.
    http://www.major-k.de/quick-oe.html


    Gruß

    Klaus
     

Diese Seite empfehlen