OSASCRIPT(1) | General Commands Manual | OSASCRIPT(1) |
osascript
—
execute OSA scripts (AppleScript, JavaScript,
etc.)
osascript |
[-l language]
[-i ]
[-s flags]
[-e statement | programfile]
[argument ...] |
osascript
executes the given OSA script,
which may be plain text or a compiled script (.scpt
)
created by Script Editor or
osacompile(1). By default,
osascript
treats plain text as AppleScript, but you
can change this using the -l
option. To get a list
of the OSA languages installed on your system, use
osalang(1).
osascript
will look for the script in one
of the following three places:
-e
switches on the
command line.Any arguments following the script will be passed as a list of strings to the direct parameter of the “run” handler. For example, in AppleScript:
a.scpt: on run argv return "hello, " & item 1 of argv & "." end run % osascript a.scpt world hello, world.
The options are as follows:
-e
statement-e
is given,
osascript
will not look for a filename in the
argument list. Multiple -e
options may be given to
build up a multi-line script. Because most scripts use characters that are
special to many shell programs (for example, AppleScript uses single and
double quote marks, “(”, “)”, and
“*”), the statement will have to be correctly quoted and
escaped to get it past the shell intact.-i
osascript
will prompt for one
line at a time, and print the result, if applicable, after each line. Any
script supplied as a command argument using -e
or
programfile will be loaded, but not executed, before
starting the interactive prompt.-l
language-s
flagse
, h
,
o
, and s
. Multiple
modifiers can be concatenated in the same string, and multiple
-s
options can be specified. The modifiers come in
exclusive pairs; if conflicting modifiers are specified, the last one
takes precedence. The meanings of the modifier characters are as follows:
h
s
osascript
normally prints its
results in human-readable form: strings do not have quotes
around them, characters are not escaped, braces for lists and
records are omitted, etc. This is generally more useful, but can
introduce ambiguities. For example, the lists
‘{"foo",
"bar"}
’ and
‘{{"foo",
{"bar"}}}
’ would both be displayed as
‘foo, bar
’. To see the
results in an unambiguous form that could be recompiled into the
same value, use the s
modifier.
e
o
osascript
normally prints
script errors to stderr, so downstream clients only see valid
results. When running automated tests, however, using the
o
modifier lets you distinguish script
errors, which you care about matching, from other diagnostic
output, which you don't.
osacompile(1), osalang(1), AppleScript Language Guide
osascript
in Mac OS X 10.0 would translate
‘\r’ characters in the output to ‘\n’ and
provided c
and r
modifiers
for the -s
option to change this.
osascript
now always leaves the output alone; pipe
through tr(1) if necessary.
Prior to Mac OS X 10.4, osascript
did not
allow passing arguments to the script.
April 24, 2014 | Mac OS X |