Einfaches Skript ausführen

Ich habe das folgende sehr einfache Skript geschrieben:

route -n add 192.168.0.0/20 192.168.224.1
route -n delete 0.0.0.0
route -n add 0.0.0.0 172.20.10.1

Und würde gerne einfach darauf doppelklicken und wissen Sie ... führen Sie es aus ... unter Windows 8 müsste ich es nur als speichern .batund mit der rechten Maustaste darauf klicken -> als Administrator ausführen ... Wie kann ich ein ähnliches Verhalten auf dem Mac erreichen? osx (neueste Version)?

Zusätzliche Punkte, wenn ich einfach darauf doppelklicken kann (Schneiden Sie den Lauf im erhöhten Modus)

Antworten (1)

Speichern Sie es anstelle von .bat als .command.

Eine .command-Datei führt bei einem Doppelklick den Inhalt der Datei im Terminal aus, genau wie eine .bat-Datei unter Windows.

Wenn Sie die Datei nicht ausführen können, weil Sie keine Berechtigung zum Ausführen der Befehlsdatei haben, müssen Sie „execute“ für die Datei festlegen, damit Sie sie ausführen können:

chmod u+x /path/to/file.command

uEigentümer der Datei ist, +xfügt „execute“ hinzu und u+xgibt dem Eigentümer der Datei so die Möglichkeit, sie auszuführen

Und für die Befehle als Admin verlangt OS X immer, dass Sie das Admin-Passwort eingeben. Für Ihr Skript ist es am einfachsten, das Skript als Administrator auszuführen und das Skript wie folgt zu ändern:

sudo route -n add 192.168.0.0/20 192.168.224.1
sudo route -n delete 0.0.0.0
sudo route -n add 0.0.0.0 172.20.10.1

sudosteht für Substitute User DO und wird standardmäßig als root ausgeführt. Es wird wahrscheinlich sudonach Ihrem Passwort fragen.

Fast dort! Berechtigungsproblem wird jetzt blockiert! irgendwelche Ideen? und ja ich bin in der admingruppe
@Leonardo Stellen Sie sicher, dass Sie die Berechtigung zum Ausführen haben; siehe diese Frage
Die Berechtigungsprobleme sind wahrscheinlich auf den routeBefehl zurückzuführen – zur Ausführung sind sudo-Berechtigungen erforderlich. Versuchen Sie, jeder Zeile ein Präfix voranzustellen, sudo -Aum eine interaktive Eingabeaufforderung für Ihr Passwort zu erhalten.
@ian-c, wenn ich ein $ mache, sudo -A dategibt es zurück:sudo: no askpass program specified, try setting SUDO_ASKPASS
Lassen Sie das -Adann fallen - ich dachte, OS X hätte eine eingebaute Asker-Anwendung.