Skip to content

Executing Shell Commands

Fabian Morón Zirfas edited this page Jun 13, 2025 · 4 revisions

Unfortunately Illustrator does not have nice functions like InDesigns app.doScript or After Effects system.callSystem.

One way to execute a command on macOS would be creating a term file.

/* global $, app, File */
/**
 * Read about termfiles
 * http://docstore.mik.ua/orelly/unix3/mac/ch01_03.htm
 * 1.3.1.1. .term files
 */

var termfile = new File(File($.fileName).parent.fsName + "/command.term");
var command = "cd " + File($.fileName).parent.fsName + " ; ls";
termfile.open("w");

termfile.writeln(
	'<?xml version="1.0" encoding="UTF-8"?>\n' +
		'<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"' +
		'"http://www.apple.com/DTDs/PropertyList-1.0.dtd">\n' +
		'<plist version="1.0">\n' +
		"<dict>\n" +
		"<key>WindowSettings</key>\n" +
		"<array>\n" +
		" <dict>\n" +
		"<key>CustomTitle</key>\n" +
		"<string>My first termfile</string>\n" +
		"<key>ExecutionString</key>\n" +
		"<string>" +
		command +
		"</string>\n" +
		"</dict>\n" +
		"</array>\n" +
		"</dict>\n" +
		"</plist>\n",
);

termfile.close();
termfile.execute();

Another way is creating a command file. This is just a shell script that you make executable chmod +x myScript.command and then you also call it with the execute command.

  • Create file myScript.command with a simple command in it, ls is enough for testing purpose.

It should look like this:

#!/bin/bash
ls
  • Open a terminal and navigate to the folder where the script is.
  • Make it executable by running chmod +x myScript.command
  • Create the script that executes it next to it.

This should be its content:

var commandFile = File(File($.fileName).parent.fsName + "/myScript.command");
commandFile.execute();

Execute it from Illustrator.


A problem will be to get return values.

Home

Clone this wiki locally