osascript [-l language] [one or more files or standard input]


The osascript command attempts to execute the files that are passed to the command as arguments. If you do not use the -l switch and the arguments do not look like filenames, then osalang attempts to execute the text arguments as standard input, dynamically run as an AppleScript. Now where else can you generate an AppleScript like that?

By default, osascript runs the text files or standard input as an AppleScript, but if you use the -l switch, you can specify another OSA language for it to use. Like osacompile and osalang, you have to use the syntax /usr/bin/osascript to call this command. Figure 34-3 is a Terminal window in which the following command has been entered:

/usr/bin/osascript "return (65 * 87)"

The osascript command runs this code phrase just as if you had entered the script into Script Editor, compiled it, and run it. The expression return (65 * 87) returns the value 5655—the product of 65 and 87—to the Terminal window as standard output.

Dynamically running standard input using the osascript command
Figure 34-3. Dynamically running standard input using the osascript command


You can pass more than one script as arguments to the osascript command. If they are valid AppleScript code, then each script will be run, but I have found that only the return value from the second script is returned to the Terminal window. Unless you have navigated ...

Get AppleScript in a Nutshell now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.