2010-07-01 12 views
6

Come potrei fare per creare un comando AppleScript che quando eseguo lo script (o doppio clic nel Finder?), Viene eseguito un set di comandi del terminale? Il set di comandi rimuove completamente MySQL, ed è diventato difficile scriverli costantemente. I comandi sono:come creare l'app AppleScript per eseguire una serie di comandi del terminale

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 

C'è anche un altro comando sudo nano /etc/hostconfig che apre un file e ho bisogno di cancellare una riga dal file, ma che sembra che sarebbe troppo difficile da codice, quindi credo che posso fallo a mano. Ma sarebbe un enorme aiuto farlo automaticamente con un singolo script.

Sarebbe solo una manciata di questi comandi?

do shell script (...) 

Grazie, Hristo

risposta

14

Sì, si userebbe do shell script.

Tuttavia, per i comandi in cui si esegue come superutente (sudo) si utilizza invece with administrator privileges. Così, per sudo rm /usr/local/mysql faresti:

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

Se l'elenco di comandi è lunga, allora potrebbe essere solo più facile mettere tutti i comandi in un unico file script di shell, e quindi eseguire script di shell che utilizza do shell script :

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

quando faccio 'fare shell script "rm/usr/local/mysql" con privileges' amministratore, mi dà un errore e mi dice che '/ usr/local/mysql' è una directory. Questo è in realtà un collegamento simbolico a una directory diversa ... qual è il problema? – Hristo

+0

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

14

in realtà non hanno bisogno di utilizzare AppleScript per questo - basta mettere tutti i comandi di shell in un file di testo e dargli un suffisso .command e assicurarsi che sia eseguibile (ad esempio chmod +x my_script.command) - questo renderà più doppio clic nel Finder.

+4

Il suffisso' .command' non è abbastanza - devi anche includere uno shebang (ad esempio aggiungi '#!/Bin/bash' come prima riga di il file di testo) e aggiungi il permesso di esecuzione al file (es. esegui 'chmod + x/path/to/file.command'). A proposito, il grande vantaggio dell'utilizzo di questo contro un AppleScript è che viene eseguito in Terminale, quindi puoi effettivamente interagire con lo script (molto importante se vuoi usare, ad esempio, 'nano' per modificare un file). –

+0

@Gordon: sì, buon punto, avrei dovuto dire che deve essere uno script di shell eseguibile con una riga shebang. –

+1

nota, tuttavia, che quando si usa 'sudo' in un comando .com dovrete ancora inserire la vostra password. se vuoi che lo script sia eseguito da solo, questo link ha alcuni buoni consigli su come farlo: http://askubuntu.com/questions/155791/how-do-i-sudo-a-command-in- un-script-senza-essere-chiesto-per-un-parola – ericsoco

0

Trovo che i file .scpt funzionino meglio ma questa è solo una cosa di preferenza.

Open "Script Editor" e aggiungere il seguente comando:

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 
Problemi correlati