-
Notifications
You must be signed in to change notification settings - Fork 9
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.
This wiki is mostly maintained by:
ff6347
Thanks to:
- JohnDarnell for fixing lots of typos.
- jsp for fixing lots of typos.
- ltfschoen for fixing typos.
- wridgers for adding more links.
- EugenTepin for several improvements.
- vamitul for improvements.
- abandonedbywolves for adding an example.
- Travis Weston
- Andy Dayton
Thanks to the students from my seminars for asking all those questions and making me start this wiki.
- adinaradke
- AnitaMei
- ce0311
- coerv
- felixharle
- FerdinandP
- Flave
- marche
- monkian
- natael
- OliverMatelowski
- PDXIII
- praktischend
- schlompf
- skaim
You are awesome.
- Arrays
- Classes
- Comments
- Conditionals
- Functions
- Inspect Properties
- Loops
- Objects
- Output And Interaction
- Recursive Functions
- Inspect Properties
- Variables And Operations
- Extended JavaScript Guide
- Bridge Talk
- Create And Read Files
- Executing Shell Commands
- ExtendScript Toolkit
- File
- Folder
- Includes JSX
- Object Watch
- Read CSV
- Read In JSON From File And DONT Eval
- Storing Data In A Target Engine
- Target an application
- XML
- Isolate Layers With the Shy Setting
- Layer Duration Change
- Render And System Call
- Rename Layers
- SourceText to Keyframes from Array
- SourceText
- System Call
- app
- Colorbrewer
- ColorGroups
- Colors And Swatches
- Delay And View
- Dialogs
- Documents
- Duplicate And Transform
- Event AfterSave
- Export IDML
- ExtendScript in InDesign Scripting DOM
- Fonts
- GeometricBounds and Coordinates
- Get named pageItems
- Graphic Lines
- Groups
- HSL Color Wheel
- Images
- Includes
- InsertionPoints
- Layers
- Line Feeds And Carrige Returns
- Locked PageItems
- loops vs everyItem
- Masterspreads
- Matrix
- Objectstyles
- Outlines Groups Alignment
- Pages And Margins
- Pathfinder
- Placeholder Text
- Rectangles Ovals Polygons
- RulerOrigin
- Scripting Labels
- Select words at insertionPoint
- Simple Find And Change Grep with FC Query
- Simple Find And Change Grep
- Simple Find And Change Text
- Spiro
- Styles
- Table Cells
- Text Analysis ID FC
- Text Analysis
- Text Find Locations
- Text
- Transformation Matricies
- TransparencySettings
- XML creation and import