Ich habe genau denselben Prozess durchlaufen, als ich mit logKext rumgespielt habe. Der Unix-Befehl, den Sie untersuchen möchten, ist / usr / bin / expect.
Es kann schnell komplex werden, aber im Grunde handelt es sich um einen Vermittler zwischen Ihnen und den Programmen, die Sie ausführen, sodass Sie Antworten erhalten, die Sie normalerweise eingeben müssten. Als Beispiel habe ich dieses Skript erstellt, um den Prozess des Druckens der logKext-Ausgabe zu automatisieren. Sie sollten alle Befehle erkennen, die Sie normalerweise für logkextClient selbst eingeben würden ...
#!/usr/bin/expect -f
spawn logkextClient
expect "logKext Password:"
send "mylogkextpassword\r"
expect "logKextClient > "
send "print\r"
expect "logKextClient > "
send "quit\r"
close
In 10.5 und 10.6 funktionierte dies gut für die Ausgabe des logKext-Ausdrucks, sodass ich ihn in eine E-Mail umleiten und senden konnte. Allerdings habe ich dieses als root angemeldete Terminal ausgeführt, so dass es einfach war.
Theoretisch könnte man stattdessen sagen, wenn Sie nicht als root angemeldet wären
#!/usr/bin/expect -f
spawn sudo -k logkextClient
expect "Password:"
send “myrootpassword\r”
expect "logKext Password:"
send "mylogkextpassword\r"
expect "logKextClient > "
send "print\r"
expect "logKextClient > "
send "quit\r"
close
(Beachten Sie, dass ich sudo -k
absichtlich konsistent war und jedes Mal ein Passwort benötigte)
Sie können also Ihren bevorzugten Befehlszeileneditor verwenden, um dieses Skript zu erstellen, einen Befehl auszuführen chmod +x
und es zum Starten auf das Dock zu ziehen ... Theoretisch.
Aber ich hatte Probleme damit, dass Mavericks / usr / bin / dazu gebracht hat, sich mit sudo richtig zu verhalten, so dass dies in anderen Skripten nicht so funktioniert, wie es sollte. Und ich habe logKext sowieso nicht mehr zum Testen installiert.
Aber ich denke, das ist die Richtung, in die du gehen möchtest.
Viel Glück!
Ich schlage vor, AppleScript zu verwenden. Ich bin nicht in der Lage, den eigentlichen Code anzugeben, nur eine Idee.
a) Starten Sie das Terminal: http://smallbusiness.chron.com/use-applescript-launch-programs-48829.html
b) Terminal anweisen, den Befehl auszuführen: https://stackoverflow.com/questions/1870270/sending-commands-and-strings-to-terminal-app-with-applescript
c) Erteilen der Terminal-Superuser-Berechtigung: https://discussions.apple.com/message/23354237#23354237
Ich bin mir nicht sicher, ob sich (b) und (c) perfekt mischen lassen.
d) Schließen Sie das Textbearbeitungsfenster / -dokument: https://stackoverflow.com/questions/10933711/how-to-open-close-and-close-dialogs-of-other-application- using-cocoa- or-a
quelle