home   über uns   kontakt   impressum   login   registrieren

Apple


Beitrag von Detlef Schulz, 02.05.2008, 20:41

Neu in AppleScript 2.0: Das AppleScript-Shebang

Eigentlich handelt es sich bei dieser Neuerung um eine anfänglich sehr unscheinbare Änderung: In Applescript 2.0 ist ein neues Kommentarzeichen hinzugekommen - das Zeichen #, auch Rautenzeichen oder Nummernzeichen genannt.

Bisher konnte man Kommentare in AppleScript nur mit einem doppelten Bindestrich beginnen oder mit (* und *) einklammern. Zum Beispiel:

--Dies ist ein einzeiliger Kommentar.

(* Dies ist
ein Kommentar
über mehrere Zeilen.*)

Ab AppleScript 2.0, eingeführt mit Mac OS X 10.5 Leopard, können Sie nun auch das Nummernzeichen für einen einzeiligen Kommentar verwenden:

#Dies ist ein einzeiliger Kommentar.

Eine wirkliche Notwendigkeit für ein weiteres Kommentarzeichen scheint dabei auf den ersten Blick gar nicht zu bestehen, ein doppelter Bindestrich tut es schließlich genauso. Außerdem sind solche Kommentare wirklich nur unter Leopard sichtbar und verwendbar. Unter Tiger werden diese Kommentare in einem einfachen kompilierten Skript schlichtweg nicht angezeigt.

Das Besondere an dem Rautenzeichen # ist jedoch, dass fast alle Skriptsprachen (wie zum Beispiel Perl, PHP, Python, Ruby und die Shell selbst) dieses Nummernzeichen als einzeiliges Kommentarzeichen akzeptieren. Dabei ist es auf UNIX-Systemen Konvention, dass die erste Zeile im Skript mit einem solchen Kommentarzeichen und einem Ausrufezeichen beginnt. Dahinter steht dann der Pfad zu dem Interpreter, der den folgenden Code ausführen soll. Die Zeichenfolge “#!” wird dabei als Shebang bezeichnet. Ein simples Python-Skript sieht zum Beispiel so aus:

#!/usr/local/bin/python
print "Hello, Python!"

Die erste Zeile gibt an, dass der folgende Code zur Ausführung an den Interpreter “python” unter dem Pfad /usr/local/bin/ übergeben werden soll.

Da jetzt auch AppleScript das Nummernzeichen als Kommentar akzeptiert, funktioniert das nun auch mit AppleScript-Code. Der zuständige Interpreter ist dabei das Shellprogramm “osascript”, eines von vier Programmen der Shell, die mit AppleScript zu tun haben.

In dem folgenden kleinen Beispiel wird der Befehl “say” aus den Standarderweiterungen von AppleScript verwendet, um kurz Hallo zu sagen:

#!/usr/bin/osascript
say "Hello, World!"

Besonders einfach lässt sich das obige Beispiel in TextWrangler, dem kleinen kostenlosen Bruder von BBEdit, ausprobieren, einem Programm der Softwareschmiede Bare Bones. In TextWrangler finden Sie im Menü unter Windows > Palettes die “Unix Scripting Tools”. Ein Klick auf den Knopf “Run” startet das Skript direkt ohne Umwege. (Falls das nicht funktioniert, hilft es, im Programm-Menü “Install Command Line Tools” auszuführen, um die Unix-Unterstützung zu aktivieren.)

image
Abb.1: Ein kleines Shellskript in TextWrangler


Sie können aber auch auf die klassische Art in einem beliebigen anderen Texteditor arbeiten - z.B. so:

  1. Öffnen Sie in TextEdit eine neue Datei.
  2. Da ein Shellskript nicht als formatierter Text gespeichert werden darf, wählen Sie im Menü Format “In reinen Text umwandeln”.
  3. Schreiben Sie folgende zwei Zeilen in die Datei:
  4. #!/usr/bin/osascript
    say "Hello!"

  5. Wählen Sie “Sichern” im Ablage-Menü.
  6. Geben Sie dem Skript den Namen “hello” und wählen Sie den Schreibtisch als Speicherort aus.
  7. Entfernen Sie den Haken bei “.txt verwenden, falls kein Suffix angegeben ist”.
  8. Wählen Sie als Codierung “Unicode (UTF-8)” und klicken Sie auf “Sichern”.
  9. Schließen Sie die Datei in TextEdit.
  10. Öffnen Sie das Terminal. (Im Ordner: Programme/Dienstprogramme/)
  11. Schreiben Sie in das Terminal:
  12. chmod +x

  13. Fügen Sie eine Leerstelle hinter dem “x” an und ziehen Sie die Datei “hello” vom Schreibtisch hinter die Leerstelle nach dem “+x”. Lassen Sie die Datei dann los. Der Pfad zu der Datei wird eingefügt.

  14. Der Befehl wird nun so aussehen wie in der folgenden Zeile, nur dass bei Ihnen natürlich an zweiter Stelle Ihr eigener Benutzername steht.

    chmod +x /Users/Detlef/Desktop/hello

  15. Bestätigen sie den Befehl mit der Enter- oder Return-Taste.

  16. Die Datei “hello” auf dem Schreibtisch erhält nun ein neues Icon. Das Symbol eines grauen Bildschirms, auf dem in grüner Schrift “exec” steht. Dies ist das Symbol für ausführbare Unix-Dateien.
  17. Doppelklicken Sie nun auf die Datei oder ziehen Sie die Datei ins Terminal und bestätigen Sie den Vorgang mit der Enter-Taste.

Ein Terminalfenster mit den Statusmeldungen zur Ausführung des Programms meldet sich, und eine Stimme begrüßt Sie mit “Hello!”.

image
Abb.2: Eine Textdatei mit einem Shellskript wird über das Terminal ausführbar gemacht.


Ein Problem wird Ihnen dabei vielleicht begegnen: Kommt in Ihrem Skript ein Dialog vor, so erhalten Sie eine Fehlermeldung. Sie können das aber umgehen, indem sie zum Beispiel ein display dialog explizit an den Finder richten und schon funktioniert es:

#!/usr/bin/osascript
tell app "Finder"
activate
display dialog "Hello World!"
end tell

(0) Kommentare | Permalink | Newsletter abonnieren
Themen: E-Mail Abo | Apple | AppleScript | Mac OS
Tags: AppleScript | Leopard | Mac OS X | Unix