Passing Command Line Args to `open` on Mac

17,344

As per $man open, you might be successful with $open MyApp.app --args argument1

Of course, you could always just run the executable directly and follow your command with an ampersand—that'll background it.

$/path/to/My.app/Contents/MacOS/executable argument &

Share:
17,344

Related videos on Youtube

dtlussier
Author by

dtlussier

Mechanical engineer with experience working in composite material manufacturing and fluid mechanics research. Familiar with Linux, OS X, Python, NumPy/SciPy, HPC clusters, etc.

Updated on September 17, 2022

Comments

  • dtlussier
    dtlussier almost 2 years

    I am using the open command from the Terminal to open an app bundle and would like to pass a command line argument through to the underlying executable.

    Is this possible with the open command?

    The reason I am using the open command at all here is that it doesn't tie up a Terminal window to support the launched process. Are there alternate ways to do this other than the open command ?

    More Information:

    The application I am looking to run is an open source visualization program (Paraview) which I have compiled myself. I know that the basic executable does indeed take command line args. The executable itself is located inside the app bundle paraview.app/Contents/MacOS/paraview.

    • Doug Harris
      Doug Harris almost 14 years
      Can you give more details about which app(s) you're launching? Different apps will deal with command line arguments differently (some will probably just ignore them).
  • dtlussier
    dtlussier almost 14 years
    Looks like --args is a new option in 10.6.
  • dtlussier
    dtlussier almost 14 years
    Following the command with & does indeed put it into the background, but the process remains a child of the shell in which it was created. Avoiding this is one of the advantages of open.
  • NReilingh
    NReilingh almost 14 years
    Ah, excellent point--I wasn't aware of that behavior for GUI apps.