2010-07-01 4 views
6

Wie würde ich einen AppleScript-Befehl erstellen, der beim Ausführen des Skripts (oder Doppelklick im Finder?) Eine Reihe von Terminalbefehlen ausführt? Der Befehlssatz entfernt MySQL vollständig und es ist zu mühsam, sie ständig zu schreiben. Die Befehle sind:Wie erstellt man eine AppleScript-App, um eine Reihe von Terminalbefehlen auszuführen?

sudo rm /usr/local/mysql 
sudo rm -rf /usr/local/mysql* 
sudo rm -rf /Library/StartupItems/MySQLCOM 
sudo rm -rf /Library/PreferencePanes/My* 
sudo rm -rf /Library/Receipts/mysql* 
sudo rm -rf /Library/Receipts/MySQL* 
sudo rm /etc/my.cnf 

Es gibt auch einen anderen Befehl sudo nano /etc/hostconfig, der eine Datei öffnet und ich brauche eine Zeile aus der Datei zu löschen, aber das scheint, wie es um Code zu hart sein würde, so dass ich denke, ich kann mach das mit der Hand. Aber es wäre eine große Hilfe, dies automatisch mit einem einzigen Skript zu tun.

Wäre es nur ein Haufen dieser Befehle?

do shell script (...) 

Danke, Hristo

Antwort

14

Ja, würden Sie do shell script verwenden.

Für die Befehle, die Sie als Superuser ausführen (sudo), verwenden Sie stattdessen with administrator privileges. Also, für sudo rm /usr/local/mysql würden Sie tun:

do shell script "rm /usr/local/mysql" with administrator privileges 

Wenn Ihre Befehlsliste lang ist, dann könnte es noch einfacher sein, alle in eine einzige Shell-Skript-Datei Ihre Befehle zu setzen, und dann den Shell-Skript ausführen do shell script mit :

do shell script "/path/to/shell/script" with administrator privileges 
+0

wenn ich 'do shell script "rm/usr/local/mysql" mit Administrator privileges', es gibt mir einen Fehler und sagt mir, Das '/ usr/local/mysql' ist ein Verzeichnis. Das ist eigentlich eine symbolische Verbindung zu einem anderen Verzeichnis ... was ist das Problem? – Hristo

+0

versuche 'rm -rf/usr/local/mysql' – indragie

14

Sie nicht wirklich brauchen für diesen Apple verwenden - nur in einer Textdatei all Shell-Befehle setzen und ihm einen .command Suffix geben und sicherstellen, dass es ausführbar ist (zB chmod +x my_script.command) - dies wird es machen im Finder doppelt anklickbar.

+4

Das' .command' Suffix reicht nicht aus - du musst auch einen Shebang einfügen (zB '#!/Bin/bash' als erste Zeile hinzufügen) die Textdatei) und der Datei die Ausführungsberechtigung hinzufügen (dh "chmod + x/path/to/file.command" ausführen). Übrigens, der große Vorteil der Verwendung dieses vs. AppleScript ist, dass es in Terminal läuft, so dass Sie tatsächlich mit dem Skript interagieren können (sehr wichtig, wenn Sie z. B. 'nano' verwenden möchten, um eine Datei zu bearbeiten). –

+0

@Gordon: Ja, guter Punkt, ich hätte sagen sollen, dass es ein ausführbares Shell-Skript mit einer Shebang-Zeile sein muss. –

+1

Beachten Sie jedoch, dass Sie bei der Verwendung von 'sudo' in einem .command immer noch Ihr Passwort eingeben müssen. Wenn Sie möchten, dass das Skript einfach eigenständig ausgeführt wird, enthält dieser Link einige gute Tipps dazu: http://askubuntu.com/questions/155791/how-do-i-sudo-a-command-in- a-Skript-ohne-nach-einem-Passwort gefragt – ericsoco

0

Ich finde, dass .scpt-Dateien am besten funktionieren, aber das ist nur eine Vorliebe Sache.

Open "Skript-Editor" und den folgenden Befehl hinzufügen:

sudo rm -rf /usr/local/mysql; sudo rm -rf /usr/local/mysql*; sudo rm -rf /Library/StartupItems/MySQLCOM; sudo rm -rf /Library/PreferencePanes/My*; sudo rm -rf /Library/Receipts/mysql*; sudo rm -rf /Library/Receipts/MySQL*; sudo rm /etc/my.cnf; say job completed successfully" with administrator privileges 
Verwandte Themen