How can I open an app using Terminal?
I want to be able to open any given app from the terminal, now I have tried
osascript -e 'open app "Calendar"'
I have tried for Mail, Calendar and Slack.. Slack acctually opens but it does generate a error msg in terminal.. The two others generates errors and doesn't open. The errors are Execution errors.
Now I tried with AppleScript, is bash better?
How can this be done?
You can use open’s -a
option:
open -a Mail
You can specify the application path instead:
open /Applications/Mail.app
If you want to use AppleScript (osascript from command line), open app
isn't quite equivalent. Instead, you can either use
osascript -e 'tell application "Mail" to activate'
or
osascript -e 'tell application "Mail" to launch'
You can see this question for the difference between the two.
Just as #grg said, you can use open -a ApplicationName
Exampleopen -a Calendar
There are a number of options that can be used with the open
command.
To see all of them, type on the terminal
man open
Here is a list of possible options for the open
command.
$ open
Usage: open [-e] [-t] [-f] [-W] [-R] [-n] [-g] [-h] [-b ] [-a ] [filenames] [--args arguments]
Help: Open opens files from a shell.
By default, opens each file using the default application for that file.
If the file is in the form of a URL, the file will be opened as a URL.
Options:
-a Opens with the specified application.
-b Opens with the specified application bundle identifier.
-e Opens with TextEdit.
-t Opens with default text editor.
-f Reads input from standard input and opens with TextEdit.
-F --fresh Launches the app fresh, that is, without restoring windows. Saved persistent state is lost, excluding Untitled documents.
-R, --reveal Selects in the Finder instead of opening.
-W, --wait-apps Blocks until the used applications are closed (even if they were already running).
--args All remaining arguments are passed in argv to the application main() function instead of opened.
-n, --new Open a new instance of the application even if one is already running.
-j, --hide Launches the app hidden.
-g, --background Does not bring the application to the foreground.
-h, --header Searches header file locations for headers matching the given filenames, and opens them.