21.12 AppleScript und das Terminal 

Sie können mit dem Befehl do shell script einen Befehl inklusive Optionen und Parameter an die Shell übergeben und ihn auf diese Weise ausführen. Dabei gibt do shell script Ihnen die Ausgabe des Befehls als Text zurück und Sie können mit dieser in Ihrem Skript weiter arbeiten. Mit
set Verzeichnisinhalt to do shell script "ls /"
lesen Sie den Inhalt des obersten Verzeichnisses aus. Um den Befehl innerhalb Ihres Skriptes zu modifizieren, müssen Sie ihn als String vorformulieren und dann die Variable übergeben.
| Pfadangaben über die Shell | Wenn Sie von AppleScript aus auf Verzeichnisse über die Shell zugreifen, müssen Sie die Pfadangaben beachten. AppleScript verwendet noch die unter OS 9 gebräuchlichen Angaben, bei denen die Verzeichnisse durch einen Doppelpunkt getrennt werden. An der Shell ist die Verwendung des Schrägstrichs zwingend. Sie können mit dem Befehl POSIX path of eine Pfadangabe umwandeln. Mit set Pfad to POSIX path of "Users:kai" würde der Wert der Variablen anschließend /Users/kai lauten und Sie können Ihn für eine Befehlsfolge verwenden. |
Im folgenden Beispiel wird der Benutzer zur Eingabe eines Pfades zu einem Verzeichnis aufgefordert, dessen Inhalt angezeigt werden soll. Die Eingabe des Benutzers wird ausgelesen und in der Variablen Verzeichnis gespeichert. Dann wird in der dritten Zeile die endgültige Befehlszeile, zum Beispiel ls /User/kai mit Hilfe von & zusammen gesetzt. Beachten Sie das Leerzeichen hinter ls. Anschließend wird die Befehlszeile an die Shell übergeben, ihr Ergebnis in einer Variablen gespeichert und dem Benutzer angezeigt.
set Abfrage to display dialog "Welches Verzeichnis anzeigen?" default answer "/" set Verzeichnis to text returned of Abfrage set Befehlszeile to "ls " & Verzeichnis set Ergebnis to do shell script Befehlszeile display dialog Ergebnis
| Befehl als Administrator ausführen | Wenn Sie die Befehlszeile um die Angabe with administrator privileges ergänzen, wird der Befehl als Administrator ausgeführt. Der Befehl do shell script "ls /" with administrator privileges würde der Eingabe von sudo ls / am Terminal entsprechen. |




Jetzt bestellen


