12

I have some apple script code:

tell application "System Events"
    key code 97
end tell

How do i write the code as a osascript -e command in Terminal? Everytime I try using \n or the such, I get errors. Sorry if I'm not being specific enough.

Cplusplusplus
  • 337
  • 1
  • 3
  • 16

3 Answers3

27

You have a couple of options:

  1. Pass each line of the AppleScript code as a separate -e option:

    osascript -e 'tell application "System Events"' -e 'key code 97' -e 'end tell'
    
  2. Pipe the AppleScript code to osascript's STDIN:

    osascript <<END
      tell application "System Events"
        key code 97
      end tell
    END
    

Oh, and you can also save AppleScript code as an executable shell script. Just add #!/usr/bin/osascript at the top of the code and save it as a plain text file:

#!/usr/bin/osascript

tell application "System Events"
  key code 97
end tell
foo
  • 3,171
  • 17
  • 18
1

Other example:

  open -a Terminal && \
     sleep 2 && \
     osascript -e 'activate application "Terminal"' -e 'tell application "System Events" to keystroke "q" using command down'

the first two lines are just to show the final goal, which is focus the Terminal window and quit it, sending Command+q

Gongora
  • 595
  • 6
  • 10
1

Actually -e option accepts new lines:

osascript -e '
tell application "System Events"
    key code 97
end tell'
mixel
  • 25,177
  • 13
  • 126
  • 165