Search code examples
applescriptosascript

Multiple Applescript lines from terminal osascript call


So I'm trying to run multiple Applescript commands from the command line in one go. However, no matter how I try it, it won't work:

$ osascript -e "set x to 0; display dialog x"
$ osascript -e "set x to 0 \n display dialog x"
$ osascript -e "set x to 0 then display dialog x"

Is there a way to do this without saving to file?


Solution

  • This works for me:

    osascript -e "set x to 0" -e "display dialog x"
    

    Have a look at the -e option in the manual page for osascript in Terminal: man osascript

    −e statement
    Enter one line of a script. If −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 char- acters 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.

    You can also do e.g.:

    osascript <<END         
    set x to 0       
    display dialog x
    END
    

    Or:

    osascript -e '          
    set x to 0
    display dialog x'