Ho registrato gli AppleEvents che vengono inviati da una finestra di Terminale. L'evento che il comando osascript
invia al compilatore / interprete AppleScript non è stato registrato. Come mai?
Più in dettaglio, il seguente argomento consiste di tre ipotesi seguite dalla loro conclusione logica. Tuttavia, l'esperimento mostra che la conclusione è falsa. Quindi l'argomento è difettoso. Sfortunatamente, non so perché sia difettoso. Dove si rompe?
Ipotesi
-
macOS viene fornito con un compilatore / interprete AppleScript incorporato installato come componente OSA.
-
Il comando terminale
osascript
non "conosce" AppleScript. Quando viene passata una riga di codice AppleScript, la trasmette al compilatore / interprete AppleScript tramite l'architettura OSA inviando un AppleEvent. -
La seguente riga di codice, quando viene eseguita nel Terminale, farà sì che tutti gli AppleEvents inviati dai comandi che vengono eseguiti dalla stessa finestra Terminal in seguito vengano stampati nel Terminale:
export AEDebugSends=1
Conclusione
Dopo aver eseguito i seguenti due comandi in una finestra di Terminale:
export AEDebugSends=1
osascript -e 'tell application "Finder" to activate'
due AppleEvents devono essere stampati:
- Uno diretto da
osascript
al compilatore / interprete AppleScript per compilare ed eseguire il comando 'tell application "Finder" per attivare'. - Uno diretto dal compilatore / interprete AppleScript al Finder per attivarsi.
Output effettivo
Viene stampato solo un AppleEvent, quello inviato al Finder:
AE2000 (4085 ): Sending an event:
------oo start of event oo------
aevt('misc'\'actv' transactionID=0 sourcePSN=[0x0,e00e "Finder"] timeout=7200 eventSource=3 { &'subj':null(), &'csig':magn(65536) })
------oo end of event oo------