Is there any easy way to append command line arguments to an application on a Mac? For example, to run Opera in kiosk mode or to use a different profile in Firefox, I can type
$ /Applications/Opera.app/Contents/MacOS/Opera -kioskmode
$ /Applications/Firefox.app/Contents/MacOS/firefox -P profilename -no-remote
In Windows I can append the arguments to the shortcut properties, but since Macs don't use shortcut per se and run the applications directly, this isn't possible.
I have found that launching the applications through bash or Applescript partially works:
# Bash
#!/bin/sh
/Applications/Firefox.app/Contents/MacOS/firefox -P default -no-remote
# Applescript
do shell script "exec /Applications/Opera.app/Contents/MacOS/Opera -kioskmode"
I can make these executable and assign an icon and everything works great except that when I run either of these pseudo programs, either a terminal window or an Applescript icon remains open as long as the application is open. Presumably, using the Applescript command open
would avoid this, but since I'm not running the application as it is packaged (just /Applications/Firefox
), it doesn't work.
So, is there a better way to run applications with command line arguments? If not, is there a way to prevent a persistent terminal session or Applescript icon from staying open while the application is open?
Edit
According to a Mozilla Wiki page, it's best to use a script to run the application with arguments. Adding a &
to the end of the script kills the persistent Terminal window. The only annoyance now is that it opens a dead, logged out Terminal window (which is better than the persistent one, but still...)
#!/bin/sh
/Applications/Firefox.app/Contents/MacOS/firefox -P default -no-remote &
&
it still belongs to the Terminal, you can fix that by adding the linedisown %/Applications/Firefox.app/Contents/MacOS/firefox
after you run it, then you can safely close the Terminal, using AppleScript.open
command has an--args
argument:open -a FireFox --args -ProfileManager
does exactly what you want.