El Lenguaje AppleScript

Notas sobre el lenguaje de scripting AppleScript. Esta página se encuentra en constante construcción. Estas son las notas dedicadas al lenguaje de scripting: sintaxis, gramática, estructuras y tipos de datos, así como el modelo o filosofía de la que parte. Para revisar la tecnología y otros aspectos del uso del lenguaje, favor de navegar a Apuntes > Apple.


Índice

  1. Introducción
  2. Entorno
  3. Estructuras de datos
  4. Ejecución
  5. Ejemplos
  6. Uso
  7. Recursos
  8. Referencias

Introducción

Como llegué a escribir en alguna entrada del blog, AppleScript era algo que había deseado aprender desde hace tiempo, pues ha resultado útil en muchas situaciones. Por alguna extraña razón «no se me ha dado». Hay algo extraño con este lenguaje de programación que no me deja inferir o extender lo que voy aprendiendo. Como es de imaginarse, en estos casos no hay de otra más que insistir, e insistir, e insistir en ello. Para mí, una forma de hacerlo, es creando apuntes como éstos.

Favor de revisar la declaración de responsabilidad de este sitio al respecto del código que en está página, y enlaces relacionados, se proporciona.


Entorno

Antes de entrar en el detalle, hay varias entradas en el blog de este sitio al respecto que para algunos podrán interesarles.

  • De Applescript en general, ecosistema y existencia (1, 2, 3).

Estructuras de datos

AppleScript cuenta con dos estructuras de datos, listas y registros. La primera es una colección ordenada de objetos, en el sentido de que los elementos se pueden recuperar por índice y pueden ser de cualquier tipo (de ahí que se diga que son «ordenadas» y «de objetos»). La creación de listas es simple, cualquier cosa que ponga entre los delimitadores de éstas ( { y } ) es una lista.

set aList to {} -- Crea una nueva lista vacía
set myList to {1, "dos", {7}, {hola:"mundo!", foo:"bar"}, 3.1415 } -- Crea una lista con objetos de distintos tipos

Por su parte, un registro es una lista de propiedades, de la que los elementos se recuperan por nombre y no por índice4.

Scripting Additions

Dentro de las rarezas de AppleScript tenemos el que en ocasiones displauy dialog puede generar un error. Esto ocurre porque a partir de cierta versión, esta instrucción fue movida a Scripting Additions.

Creación de bibliotecas

La creación de bibliotecas no difiere mucho de la creación de otros scripts. Lo que permite que sean usados como biblotecas es el que deben ser colocados en ~/Library/Script Libraries y el que sean llamadas con

use alias: script «library»


Ejecución

La ejecución de un script,…


Ejemplos

«Hello, World!»

El típico ejemplo. El código debe colocarse en un archivo llamado helloWorld.applescript. Este ejemplo incluye una shebang (lo que permite ejecutarlo sin invocar al intérprete dando permisos: chmod u+x helloWorld.applescript).

#!/usr/bin/env osascript

display dialog "Hello, World!"

y puede ejecutarse desde la línea de comando con:

./helloWorld.applescript

uso

A continuación de listan algunas entradas del blog de este sitio web dedicadas a que ilustran el uso de Applescript en la resolución de un problema o la automatización de una tarea.

BASH interaction, System Preferences & display settings

Troubleshooting and errors

Versiones

Snippets e ideas

Strings

-- Find last occurrence of a string in a string and remove it.

set theString to "/Users/Shared/Scripts/S4R/Reference/takeTitle.scpt"
set toFind to "/"

text 1 thru ((length of theString) - (offset of toFind in (reverse of characters of theString as text)) + 1) ¬
       of theString

-- result: "/Users/Shared/Scripts/S4R/Reference/"

Counting Items

URL: https://www.macscripter.net/t/how-to-get-a-count-of-a-given-char-in-a-string/19405/6

split a String

URL: https://www.macscripter.net/t/how-can-i-split-a-string/36749


Referencias

  1. Benjamin S. Waldie, «AppleScript Essentials«, MacTech, web. Volume Number: 23 (2007), Issue Number: 03. URL: http://preserve.mactech.com/articles/mactech/Vol.23/23.03/23.03AppleScriptPowerPoint/index.html.
  2. «AppleScript«, esacademic.com, web. Visitado: 2018.07.28. URL: http://www.esacademic.com/dic.nsf/eswiki/97603.
  3. «Open Scripting Architecture«, Apple, Inc., web. Visited: 2018.07.28. URL: https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptX/Concepts/osa.html.
  4. «AppleScript Programming/Lists and records«, Wikibooks, web. Updated: 2017.31.07; Consulted: 2018.12.30. URL: https://en.wikibooks.org/wiki/AppleScript_Programming/Lists_and_records.

© Todos los derechos reservados.
Dr. Eduardo René Rodríguez Ávila

Creación: 2018.06.19
Última actualización: 2026.03.22

El contenido de este sitio puede ser copiado y reproducido libremente, siempre que no se altere y se cite su origen. Marcas y productos registrados se citan por referencia, sin fines de lucro ni de dolo. Todas las opiniones son a título personal del o de los autores de estas y, salvo que se exprese de otro modo, deben considerarse como registro y expresión de la experiencia de uso de aquello de lo que se trata. Para conocer más sobre la posición de privacidad y responsabilidad respecto de lo que se presenta en este sitio web y de cómo se ha obtenido, consulte la declaración correspondiente.