Applescript: Run or Call a Shell Script

Posted on in Categories , , last updated January 15, 2017

How do run a shell script with an AppleScript? How do I integrate shell scripts into AppleScript? How do I call a shell script called /path/to/ using an applescript?

AppleScript is a scripting for Mac OS. It is the Mac OS scripting interface, which is meant to operate in parallel with the graphical user interface. With AppleScript, you can control, and communicate among, applications, databases, networks, Web services, and even the operating system itself.

Running Shell Commands From AppleScript Scripts

You can easily execute shell commands from your AppleScript using the following syntax:

do shell script "command"
do shell script "command1; command2"
set variableName to do shell script "command"
set variableName to do shell script "command1; command2"
do shell script "/path/to/"
do shell script "/bin/tcsh /path/to/yourscript.csh"
do shell script "/bin/tcsh -c  'command1'"

The following script statement uses a do shell script command to get list of the files from the current directory and store it into the AppleScript variable filesLists:

set filesLists to do shell script "ls"

Task: Pass an AppleScript Variable To Shell Command

Use the following syntax (h is an AppleScript variable which is passed to traceroute shell command):

set h  to ""
do shell script "traceroute " & h

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin and a trainer for the Linux operating system/Unix shell scripting. He has worked with global clients and in various industries, including IT, education, defense and space research, and the nonprofit sector. Follow him on Twitter, Facebook, Google+.

7 comment

  1. Thanks, now I want to simply copy files from the same dir as the bash script. Applescript and also *.command mess the current directory so the files won’t get found. Users can run it the classic way ./bashscript but I want it clickable in whatever way.

  2. Hello,

    I have the same problem as above.
    I want to create an apple script which runs a pre written shell script (.sh) file.

    my apple script file and .sh file are in the same folder.
    I have written the following line in apple script file.

    do shell script “sh”

    so it gives me following error.
    error “sh: No such file or directory” number 127

    please guide me whatever is missing.

  3. could we please change the variable name in the traceroute example to the same one being set one line above? while my problem is laziness in copy/paste and poor eyesight visually differentiating between h and n, applescript seems to be insensitive to this shortcoming on my part and mocks me with an unset variable error. novices in scripting/programming &c may see the error and imagine some non-existent correlation of h and n forever hazing their understanding or giving into abandoning the endeavour.

Leave a Comment