Scripting the Terminal

As Chapter 18 describes, the Terminal application provides a command-line interface to the Unix system running underneath Mac OS X’s GUI layers. AppleScript reflects this by offering only one real Terminal-scripting command: do script. If you tell the Terminal application do script some_command, the Terminal acts as if you had invoked some_command by typing it on the command line.

Tip

Apple provides an excellent TechNote on the do shell script command, which can be found at http://developer.apple.com/technotes/tn2002/tn2065.html.

For example, if you want the Terminal to display your shell’s command path, you can use the following:

tell application "Terminal"
    do script "echo $PATH"
end tell

When run, this script launches the Terminal (or opens a new Terminal window if the application is already running) and issues the echo $PATH command. The result looks something like this:

MacChuck:~ chuck$ echo $PATH
/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/vscan:/usr/libexec:/Developer/Tools
MacChuck:~ chuck$

Another level of scripting the Terminal uses involves any of the Unix scripting languages that ship with Mac OS X, including Perl, Python, and Ruby. These languages can perform tasks ranging from simple glue between Mac OS X’s Unix programs to acting as full-fledged applications in their own right.

Unfortunately, you can’t learn these languages by a little bit of guided stumbling, as you can with AppleScript (see Section 14.2.2). That said, they’re high-level languages that ...

Get Mac OS X Panther in a Nutshell, 2nd Edition 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.