2017-08-23 1 views
0

Also, ich versuche, ein Skript zu schreiben, um drahtlose Netzwerke und ihre zugehörigen Keychain-Anmeldeinformationen zu entfernen.Applescript: Ausführen von Terminalbefehlen und Speichern der Ausgabe

tell application "Terminal" 

activate 
string mywifi 
set mywifi to "test" 
set mywifi to do script ("networksetup -listallhardwareports | grep -A 1 'Wi-Fi' | grep -v 'Hardware' | sed -e 's/'Device:\ '//g'") 



do script "networksetup -removepreferredwirelessnetwork $mywifi NETWORK1" 
do script "security delete-generic-password NETWORK1" 

delay 2 

#do script "networksetup -removepreferredwirelessnetwork $mywifi NETWORK2" 
#do script "security delete-generic-password Network2" 

delay2 

#do script "networksetup -removepreferredwirelessnetwork $mywifi Network3" 
#do script "security delete-generic-password Network3" 

delay 2 

#do script "networksetup -removepreferredwirelessnetwork $mywifi Network4" 
#do script "security delete-generic-password Network4" 

delay 2 

#do script "networksetup -removepreferredwirelessnetwork $mywifi Network5" 

#do script "security delete-generic-password Network5" 

delay 2 

Ende sagen

beenden

Wo lese ich in Schwierigkeiten laufen bin ist diese Variable mit der Ausgabe dieses Befehls zu setzen. Der Befehl wird ausgeführt in Terminal, obwohl, wenn ich es zu kompilieren versuche, wird die folgenden Fehler

geworfen

Syntax Error: Expected """ but found unknown token

Es findet dieses Recht nach/Gerät: \ ‚zwischen dem \‘ Ich habe nicht in der Lage gewesen, um herauszufinden, was wird vermisst. Wenn ich "zwischen ihnen hinzufüge, lässt es einfach das Terminal zu> Direkt meinen ersten Ausflug in applescript, aber nicht meine erste Sprache. Ich denke, dass ich es zu lange anstarrt.

+0

Warum haben Sie in dieser Zeile Klammern? 'set mywifi to script (" ... ")' –

+0

Die Zeile sollte lauten: 'set mywifi to shell script 'networksetup -listallhardwareports | grep-1' Wi-Fi '| grep -v' Hardware '| sed -e 's /' Device: \\ '// g' "' – user3439894

+0

Warum nicht einfach die ganze Menge in einem 'bash'-Skript tun, anstatt' bash' 11 Mal aufzurufen und jedes Mal einen Befehl auszuführen? Hier ist kein AppleScript erforderlich. –

Antwort

0

Dies ist nicht beabsichtigt vollständige Antwort, weil ich den security Befehl nicht sehr vertraut bin, obwohl ich glaube, dass Sie ihn mit dem Befehl sudo vorankommen müssen, um den Schlüsselbund zu modifizieren Es gibt viele gute Informationen im Internet, die security befehlen Bit, aber es gibt nichts in meinem Schlüsselbund Ich möchte entfernen, damit ich in dieser Hinsicht nicht testen kann

Im Folgenden wird der Befehl, den Sie möglicherweise auchverwenden müssen 10, in Terminal, aber in AppleScript fügen with administrator privileges am Ende des Befehls do shell script ", wenn erforderlich, wenn bevorzugte drahtlose Netzwerke.

Es ist wie Ihr schaut alle bevorzugten drahtlosen Netzwerke zu entfernen versuchen, und dies kann direkt im Terminal mit folgendem Befehl:

networksetup -removeallpreferredwirelessnetworks $(networksetup -listallhardwareports | awk '/Wi-Fi/{getline; print $2}') 

Wenn Sie die gleiche Sache in Applescript, zum Beispiel zu tun:

do shell script "networksetup -removeallpreferredwirelessnetworks $(networksetup -listallhardwareports | awk '/Wi-Fi/{getline; print $2}')" 

Wenn Sie wollen, dass es in einer bash-Skript verwenden, verwenden Sie dann die Zeile oben mit einer bash shebang, zB:

#!/bin/bash 
networksetup -removeallpreferredwirelessnetworks $(networksetup -listallhardwareports | awk '/Wi-Fi/{getline; print $2}') 

Speichern Sie es in einer Nur-Text-Datei ohne eine Erweiterung, und machen Sie es ausführbar, z. chmod u+x filename wo filename ist, was auch immer Sie es als gespeichert haben. Dann, um es in Terminal zu verwenden, oder /path/to/filename, wenn es nicht an einem Speicherort gespeichert wird, der in der Umgebungsvariablen PATH definiert wird.

Wenn Sie dies nur für bestimmte Netzwerke tun möchten, können Sie anstelle einer Zeile für jedes Netzwerk eine Liste durchlaufen. Wenn Sie Hilfe brauchen, lassen Sie es uns wissen.

Verwandte Themen