2

I wrote the following very simple script:

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

And would like to just double click it and you know... run it... on windows 8 i would just have to save as a .bat and right click it-> run as admin... How can i achieve similar behavior in mac osx (latest version)?

Extra points if i can just double click it (cut the run under elevated mode)

Leonardo
  • 181
  • 1
  • 4
  • 15

1 Answers1

4

Instead of .bat, save it as .command.

A .command file will run the contents of the file in Terminal upon double-click, just like a .bat would do on Windows.

If you can't run the file because you don't have permission to execute the command file, you need to set 'execute' on the file for it to allow you to run it:

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

u is the owner of the file, +x adds 'execute', so u+x gives the owner of the file the ability to execute it

And to the the commands as admin, OS X always requires you to put in the admin password. For your script, the easiest way to do this, is to run the script as an admin user and change the script to the following:

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

sudo stands for Substitute User DO and runs as root by default. It is likely sudo will ask for your password.

CousinCocaine
  • 9,748
  • 11
  • 49
  • 73
grg
  • 192,762
  • 43
  • 337
  • 460
  • Almost there! permission issue blocking now! any ideas? and yes i'm in the admin group – Leonardo Jul 17 '14 at 16:16
  • @Leonardo Make sure you have permission to execute; see [this question](http://apple.stackexchange.com/q/113974) – grg Jul 17 '14 at 16:18
  • The permission problems are likely on the `route` command -- it needs sudo permissions to run. Try prefixing each line with `sudo -A` to get an interactive prompt for your password. – Ian C. Jul 17 '14 at 16:27
  • @ian-c, when I do a $ `sudo -A date` it returns: `sudo: no askpass program specified, try setting SUDO_ASKPASS` – CousinCocaine Jul 17 '14 at 17:20
  • Drop the `-A` then -- I thought OS X had a built-in asker application. – Ian C. Jul 17 '14 at 17:24