arranger Inviato 30 Dicembre 2007 Segnala Condividi Inviato 30 Dicembre 2007 ho fatto in applescript un semplice script che mi esegue dei comandi sul terminale L'ho salvato come applicazione, dato una bella icona e messo nel dock. Il mio dilemma è : esiste un metodo (anche laterale) per cui visivamente ho del feedback sulla durata del processo nella shell? mi spiego meglio: lo script è velocissimo e dura niente: la lucetta sotto la sua icona GIUSTAMENTE si spegne quando ha terminato, vorrei farla durare fino a quando quella finestra del terminale è aperta (ho provato con dei loop sullo stato della finesta, ma si rivelavano poi infiniti) Link al commento Condividi su altri siti Altre opzioni di condivisione...
MacMomo Inviato 30 Dicembre 2007 Segnala Condividi Inviato 30 Dicembre 2007 Ma non puoi usare direttamente il comando do shell script senza passare dal Terminale? Così l'applicazione terminerebbe da sola una volta eseguiti tutti i comandi. Marco - Gallery MacBook Nero 2.2 GHz Intel Core 2 Duo - 4 GB RAM - Mac OS X 10.6 Snow Leopard Link al commento Condividi su altri siti Altre opzioni di condivisione...
arranger Inviato 30 Dicembre 2007 Autore Segnala Condividi Inviato 30 Dicembre 2007 hai ragione così l'applicazione in applescript permane in 'vita' per la durata del processo nella shell tuttavia io nella shell ci caricavo un bot per irc e faceva comodo monitorarlo visivamente, mentre adesso è come se fosse su una shell remota qualche idea? -edit- inoltre facendo come dici te poi non posso terminare la vita del bot pur facendo uscita forzata sulla applicazone Link al commento Condividi su altri siti Altre opzioni di condivisione...
arranger Inviato 31 Dicembre 2007 Autore Segnala Condividi Inviato 31 Dicembre 2007 ho fatto una cosa simile tell application "System Events" delay 2 repeat while (exists process "perl") delay 2 end repeat end tell ma il processo non lo trova......sembra che trovi solo i processi che iniziano con la maiuscola (vedo i nomi in monitoraggio attività ), magari perl non è il vero nome: come faccio a scovare l'originale (e che funzioni?) Link al commento Condividi su altri siti Altre opzioni di condivisione...
MacMomo Inviato 2 Gennaio 2008 Segnala Condividi Inviato 2 Gennaio 2008 Se l'output non ti interessa vederlo in tempo reale puoi assegnarlo ad una variabile e fartelo mostrare alla fine del processo stesso. Esempio: set var to do shell script "mio comando" display dialog var Marco - Gallery MacBook Nero 2.2 GHz Intel Core 2 Duo - 4 GB RAM - Mac OS X 10.6 Snow Leopard Link al commento Condividi su altri siti Altre opzioni di condivisione...
arranger Inviato 2 Gennaio 2008 Autore Segnala Condividi Inviato 2 Gennaio 2008 risolto! set s to "ps xa -o pid,command | grep perl | grep -v grep | cut -d\"/\" -f1" as string set var to do shell script s repeat while (var is not "") delay 10 set var to do shell script s end repeat ora però vorrei fare che quando chiudo l'applicazione (ho salvato lo script come applicazione) il processo venisse killato è possibile? Link al commento Condividi su altri siti Altre opzioni di condivisione...
MacMomo Inviato 3 Gennaio 2008 Segnala Condividi Inviato 3 Gennaio 2008 Ciao! Sinceramente, adesso non mi viene in mente nessuna idea sensata, solo vie traverse. Non riesco comunque ancora a capire l'utilità di avere un'applicazione AppleScript che rimanga aperta (e se non ho capito male senza neanche una finestra o altro) mentre il succo del programma lo svolge il Terminale facendo eseguire uno o più comandi con una sua finestra aperta che rimane comunque indipendente dall'applicazione. Ma non ti conviene allora fare un file .command? Così te lo apre e te lo esegue direttamente il Terminale e quando ha fatto basta che lo chiudi (oppure lo fai chiudere direttamente allo script ). Marco - Gallery MacBook Nero 2.2 GHz Intel Core 2 Duo - 4 GB RAM - Mac OS X 10.6 Snow Leopard Link al commento Condividi su altri siti Altre opzioni di condivisione...
arranger Inviato 3 Gennaio 2008 Autore Segnala Condividi Inviato 3 Gennaio 2008 no come ho detto sopra la cosa utile è monitorare visivamente dal dock l'andamento di quel processo che è il mio bot in IRC :o oggi sono arrivato a scoprire e fare questo global varglobal vor on run tell application "Terminal" activate delay 2 try set vor to id of first window whose frontmost is true on error do script "clear" set vor to id of first window whose frontmost is true end try tell application "System Events" tell process "Terminale" keystroke "t" using command down --tell menu bar 1 --tell menu "Shell" --click menu item "Nuovo Pannello" --end tell --end tell end tell end tell set xid to count tabs in window id vor do script "cd infobot-0.45.3 ./infobot" in tab xid of window id vor --set vor to window id of result end tell set var to "" end run on idle delay 10 set s to "ps xa -o pid,command | grep perl | grep -v grep | cut -d\"/\" -f1" as string set var to do shell script s if (var is "") then quit end if end idle on quit try do shell script "kill " & var tell application "Terminal" close (window whose id is vor) end tell continue quit on error --display dialog "Really quit?" buttons {"No", "Quit"} default button "Quit" --if the button returned of the result is "Quit" then --display dialog "Error" & var continue quit end try --end if -- If I don't continue the quit, the app will keep running. end quit ora devo solo perfezionare il fatto della finestra del terminale, infatti così me lo apre sempre in un tab(che già non è male :prr:) scusate se è scritto in maniera bislacca ma applescript lo conosco da 4 giorni Link al commento Condividi su altri siti Altre opzioni di condivisione...
arranger Inviato 5 Gennaio 2008 Autore Segnala Condividi Inviato 5 Gennaio 2008 non riesco poi a far chiudere la finestra del terminale quando faccio close window window_number in window_number vuole il campo index e non id , e io nella mia variabile vor ho id e solo id riesco a trovare... qualche idea? Link al commento Condividi su altri siti Altre opzioni di condivisione...
Messaggi raccomandati
Archiviato
Questa discussione è archiviata e chiusa a future risposte.