De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

AppleScript es un lenguaje de secuencias de comandos creado por Apple Inc. que facilita el control automatizado de las aplicaciones de Mac que se pueden programar . Introducido por primera vez en System 7 , actualmente se incluye en todas las versiones de macOS como parte de un paquete de herramientas de automatización del sistema. [2] [3] El término "AppleScript" puede referirse al lenguaje en sí, a un script individual escrito en el lenguaje o, informalmente, a la arquitectura de scripting abierta de macOS que subyace al lenguaje. [2] [3]

Resumen [ editar ]

AppleScript es principalmente un lenguaje de secuencias de comandos desarrollado por Apple para realizar comunicaciones entre aplicaciones (IAC) utilizando eventos de Apple . [2] [3] AppleScript está relacionado con los eventos de Apple, pero es diferente. Los eventos de Apple están diseñados para intercambiar datos y controlar otras aplicaciones con el fin de automatizar tareas repetitivas.

AppleScript tiene algunas capacidades de procesamiento propias, además de enviar y recibir eventos de Apple a las aplicaciones. AppleScript puede realizar cálculos básicos y procesamiento de texto, y es extensible, lo que permite el uso de adiciones de secuencias de comandos que agregan nuevas funciones al lenguaje. Sin embargo, AppleScript se basa principalmente en la funcionalidad de aplicaciones y procesos para manejar tareas complejas. Como lenguaje de comandos estructurado , AppleScript se puede comparar con shells de Unix , Microsoft Windows Script Host o IBM REXX en su propósito, [ cita requerida ]pero es distinto de los tres. Esencial para su funcionalidad es el hecho de que las aplicaciones de Macintosh publican "diccionarios" de operaciones y objetos direccionables.

AppleScript tiene algunos elementos de programación procedimental , programación orientada a objetos (particularmente en la construcción de objetos de script) y tendencias de programación en lenguaje natural en su sintaxis, pero no se ajusta estrictamente a ninguno de estos paradigmas de programación . [3] : xxvi

Historia [ editar ]

A finales de 1980 de Apple considera el uso de HyperCard 's HyperTalk lenguaje de script como el lenguaje estándar para el desarrollo del usuario final a través de la empresa y dentro de su Mac OS clásico sistema operativo, y para la comunicación entre procesos entre Apple y los productos que no sean de Apple. [4] Los principiantes pueden utilizar HyperTalk para programar una pila HyperCard. Los ingenieros de Apple reconocieron que se podría diseñar un lenguaje de scripting similar, pero más orientado a objetos, para usarse con cualquier aplicación , y el proyecto AppleScript nació como resultado de un esfuerzo de investigación para modernizar el Macintosh en su conjunto y finalmente se convirtió en parte del Sistema 7 .[5]

AppleScript se lanzó en octubre de 1993 como parte de System 7.1.1 (System 7 Pro, la primera actualización importante de System 7). [5] QuarkXPress (ver. 3.2) fue una de las primeras aplicaciones de software importantes que admitieron AppleScript. Esto, a su vez, llevó a que AppleScript se adoptara ampliamente en el mundo de la publicación y la preimpresión, a menudo vinculando flujos de trabajo complejos. Este fue un factor clave para retener la posición dominante de Macintosh en publicación y preimpresión, incluso después de que QuarkXpress y otras aplicaciones de publicación se trasladaran a Microsoft Windows.

Después de cierta incertidumbre sobre el futuro de AppleScript en el sistema operativo de próxima generación de Apple, el cambio a Mac OS X (alrededor de 2002) y sus frameworks Cocoa aumentó enormemente la utilidad y flexibilidad de AppleScript. Las aplicaciones Cocoa permiten a los desarrolladores de aplicaciones implementar la capacidad de scriptabilidad básica para sus aplicaciones con un esfuerzo mínimo, ampliando el número de aplicaciones que son directamente programables. Al mismo tiempo, el cambio a los fundamentos de Unix y la capacidad de AppleScript para ejecutar comandos de Unix directamente, con el do shell scriptcomando, [6] permitió a AppleScripts un control mucho mayor sobre el sistema operativo en sí. [3] : 863 AppleScript Studio , lanzado con Mac OS X 10.2como parte de Xcode , y posterior marco AppleScriptObjC , lanzado en Mac OS X 10.6 , permitió a los usuarios crear aplicaciones Cocoa usando AppleScript. [3] : 969

En un artículo de 2006, Macworld incluyó a AppleScript entre sus rankings de los 30 productos más importantes de Apple hasta la fecha, ubicándolo en el puesto 17. [7]

En un artículo de 2013 para Macworld , el veterano desarrollador de software y comentarista de Mac John Gruber concluyó su reflexión sobre "la insólita persistencia de AppleScript" señalando: "En teoría, AppleScript podría ser mucho mejor; en la práctica, sin embargo, es lo mejor que tenemos eso funciona. Ejemplifica las ventajas de Mac sobre iOS para los aficionados a los retoques y los usuarios avanzados ". [8]

En octubre de 2016, Sal Soghoian , un veterano director de productos de AppleScript y evangelista de la automatización, dejó Apple cuando su puesto fue eliminado "por razones comerciales". [9] Los veteranos en la comunidad de Mac como John Gruber y Andy Ihnatko generalmente respondieron con preocupación, cuestionando el compromiso de Apple con la comunidad de desarrolladores y usuarios profesionales. [10] El vicepresidente senior de ingeniería de software de Apple, Craig Federighi, respondió en un correo electrónico que decía: "¡Tenemos toda la intención de continuar apoyando las grandes tecnologías de automatización en macOS!", Aunque Jeff Gamet de The Mac Observer.opinó que hizo poco para disipar sus dudas sobre el futuro de la automatización de Apple en general y AppleScript en particular. [11] Por el momento, AppleScript sigue siendo un componente de las tecnologías de automatización de macOS, junto con Services , Automator y shell scripting .

Conceptos básicos [ editar ]

AppleScript fue diseñado para ser utilizado como un lenguaje de scripting accesible para el usuario final, ofreciendo a los usuarios un mecanismo inteligente para controlar aplicaciones y acceder y modificar datos y documentos. AppleScript usa eventos de Apple , un conjunto de formatos de datos estandarizados que el sistema operativo Macintosh usa para enviar información a aplicaciones, más o menos análogo al envío de consultas XPath a través de XML-RPC en el mundo de los servicios web . [3] : xxvi Los eventos de Apple permiten que un script funcione con múltiples aplicaciones simultáneamente, pasando datos entre ellas para que las tareas complejas se puedan realizar sin interacción humana. [2] Por ejemplo, un AppleScript para crear una galería web simple podría hacer lo siguiente:

  1. Abra una foto en una aplicación de edición de fotos (enviando a esa aplicación un evento Open File Apple).
  2. Dígale a la aplicación de edición de fotos que manipule la imagen (por ejemplo, reduzca su resolución, agregue un borde, agregue un crédito de foto)
  3. Dígale a la aplicación de edición de fotos que guarde la imagen modificada en un archivo en una carpeta diferente (enviando a esa aplicación un evento Guardar y / o Cerrar Apple).
  4. Envíe la nueva ruta del archivo (a través de otro evento de Apple) a un editor de texto o una aplicación de edición web
  5. Dígale a esa aplicación de edición que escriba un enlace para la foto en un archivo HTML.
  6. Repita los pasos anteriores para una carpeta completa de imágenes (cientos o incluso miles de fotos).
  7. Cargue el archivo HTML y la carpeta de fotos revisadas en un sitio web, enviando eventos de Apple a un cliente FTP gráfico , utilizando comandos AppleScript integrados o enviando eventos de Apple a las utilidades FTP de Unix.

Para el usuario, cientos o miles de pasos en múltiples aplicaciones se han reducido al solo acto de ejecutar el script, y la tarea se logra en mucho menos tiempo y sin posibilidad de error humano aleatorio. Se podría desarrollar una secuencia de comandos grande y compleja para que se ejecute solo una vez, mientras que otras secuencias de comandos se utilizan una y otra vez.

Los elementos programables de una aplicación son visibles en el Diccionario de secuencias de comandos de la aplicación (distribuido como parte de la aplicación), que se puede ver en cualquier editor de secuencias de comandos . Los elementos se agrupan generalmente en conjuntos, de acuerdo con las relaciones funcionales flexibles entre ellos. Hay dos tipos básicos de elementos presentes en cualquier suite: clases y comandos.

  • Las clases son objetos que se pueden programar; por ejemplo, una aplicación de edición de texto casi con certeza tendrá clases para ventanas, documentos y textos, y estas clases tendrán propiedades que se pueden cambiar (tamaño de la ventana, color de fondo del documento, tamaño de fuente del texto, etc.) y puede contener otras clases (una ventana contendrá uno o más documentos, un documento contendrá texto, un objeto de texto contendrá párrafos y palabras y caracteres).
  • Los comandos , por el contrario, son instrucciones que se pueden dar a objetos que se pueden programar. El formato general para un bloque de AppleScript es decirle a un objeto programable que ejecute un comando.

Todas las aplicaciones programables comparten algunos comandos y objetos básicos, generalmente llamados Standard Suite, comandos para abrir, cerrar o guardar un archivo, imprimir algo, salir, establecer datos en variables, así como un objeto de aplicación básico que proporciona la propiedades programables de la aplicación en sí. Muchas aplicaciones tienen numerosas suites capaces de realizar cualquier tarea que la propia aplicación pueda realizar. En casos excepcionales, las aplicaciones pueden admitir complementos que incluyen sus propios diccionarios de secuencias de comandos.

AppleScript fue diseñado con la capacidad de crear scripts de forma intuitiva al registrar las acciones del usuario. Esta capacidad de grabación de AppleScript debe diseñarse en la aplicación; la aplicación debe admitir eventos de Apple y grabación de AppleScript; [12] como Finder admite la grabación de AppleScript, puede ser útil como referencia. Cuando se abre AppleScript Editor (Script Editor) y se hace clic en el botón Grabar, las acciones del usuario para aplicaciones grabables se convierten en sus comandos AppleScript equivalentes y se envían a la ventana Script Editor. La secuencia de comandos resultante se puede guardar y volver a ejecutar para duplicar las acciones originales, o se puede modificar para que sea más útil en general.

Comentarios [ editar ]

Los comentarios se pueden hacer de varias formas. Un comentario de una línea puede comenzar con 2 guiones ( - ). En AppleScript 2.0, lanzado por primera vez en Mac OS X Leopard , también puede comenzar con un signo de número (#). Esto permite almacenar un script AppleScript autónomo como un archivo de texto ejecutable que comienza con la línea shebang #!/usr/bin/osascript Ejemplo:

--Este es un comentario de una línea # ¡También esto! (en Mac OS X Leopard o posterior)

Para los comentarios que ocupan varias líneas, AppleScript utiliza paréntesis con asteriscos adentro. Ejemplo:

(* Este es un comentario de varias líneas *)

¡Hola Mundo! [ editar ]

En AppleScript, el tradicional "¡Hola, mundo!" El programa se puede escribir en muchas formas diferentes, que incluyen:

mostrar el cuadro de diálogo  "¡Hola, mundo!"  - una ventana modal con los botones "Aceptar" y "Cancelar" - o mostrar la alerta  "¡Hola, mundo!"  - una ventana modal con un solo botón "Aceptar" y un icono que representa la aplicación que muestra la alerta - o diga  "¡Hola, mundo!"  - un mensaje de audio utilizando una voz de computadora sintetizada

AppleScript tiene varias opciones de interfaz de usuario, incluidos cuadros de diálogo, alertas y lista de opciones. (El carácter ¬, producido al escribir ⌥ Option+ returnen el Editor de secuencias de comandos, denota la continuación de una sola declaración en varias líneas).

- Dialog establece  dialogReply  al  diálogo sobre la pantalla  "diálogo de texto"  ¬ predeterminado  de respuesta  "Texto respuesta"  ¬ oculta  respuesta  falsas  ¬ botones  { "Saltar" ,  "bien" ,  "Cancelar" }  ¬ por defecto  botón  "Ok"  ¬ cancelan  botón  "Omitir"  ¬ con el  título  "diálogo de título de la ventana"  ¬ con el  icono de  nota  ¬ dar  hasta  después de  15
- Elija del conjunto de la  lista elegidoListItem  para  elegir de la lista  { "A" ,  "B" ,  "3" }  ¬ con el  título  "Título de la lista"  ¬ con el  mensaje  "Texto de  solicitud " ¬ elementos predeterminados  "B" ¬ Nombre del botón Aceptar "Parece ¡Bien!" ¬ cancelar nombre del botón "No, inténtelo de nuevo" ¬ múltiples selecciones permitidas falso ¬ con selección vacía permitida                 
 - Alerta establece  resultAlertReply  de  alerta pantalla  "Alerta de texto"  ¬ como  advertencia  ¬ botones  { "Saltar" ,  "bien" ,  "Cancelar" }  ¬ por defecto  botón  2  ¬ cancelan  botón  1  ¬ dar  hasta  después de  2

Cada método de interacción del usuario puede devolver los valores de los botones en los que se hizo clic, los elementos elegidos o el texto ingresado para su posterior procesamiento. Por ejemplo:

mostrar alerta  "¡Hola, mundo!"  botones  { "disminución groseramente" ,  "Felizmente aceptar" } establecen  TheAnswer  al  botón de regresar  de  la  consecuencia si  TheAnswer  está  "Felizmente aceptar"  a continuación pitido  5 otra cosa que decir  "Piffle!" terminar  si

Metáfora del lenguaje natural [ editar ]

Mientras que los eventos de Apple son una forma de enviar mensajes a las aplicaciones, AppleScript es un lenguaje particular diseñado para enviar eventos de Apple. De acuerdo con el objetivo de facilidad de uso para principiantes, el lenguaje AppleScript está diseñado sobre la metáfora del lenguaje natural , al igual que la interfaz gráfica de usuario está diseñada sobre la metáfora del escritorio . Un AppleScript bien escrito debe ser lo suficientemente claro para ser leído y entendido por cualquier persona, y debe editarse fácilmente. El lenguaje se basa en gran medida en el lenguaje HyperTalk de HyperCard, ampliado para referirse no solo al mundo de tarjetas y pilas de HyperCard, sino también teóricamente a cualquier documento. Con este fin, el equipo de AppleScript presentó el modelo de objetos AppleEvent (AEOM), que especifica los objetos que cualquier aplicación en particular "conoce".

El corazón del lenguaje AppleScript es el uso de términos que actúan como sustantivos y verbos que se pueden combinar. Por ejemplo, en lugar de un verbo diferente para imprimir una página, documento o rango de páginas (como printPage, printDocument, printRange), AppleScript usa un solo verbo "imprimir" que se puede combinar con un objeto, como una página, un documento o un rango de páginas.

imprimir  página  1imprimir  documento  2imprimir las  páginas  1  a  5  del  documento  2

Generalmente, AEOM define una serie de objetos, como "documento" o "párrafo", y las acciones correspondientes, como "cortar" y "cerrar". El sistema también define formas de referirse a las propiedades de los objetos, por lo que se puede hacer referencia al "tercer párrafo del documento 'Buen día'", o al "color de la última palabra de la ventana frontal". AEOM utiliza una aplicación de diccionario para asociar los eventos de Apple con términos legible por humanos, lo que permite la traducción de vuelta y vuelta entre AppleScript legible y código de bytes eventos de Apple. Para descubrir qué elementos de un programa son programables, se pueden ver los diccionarios de las aplicaciones compatibles. (En las aplicaciones Xcode y Script Editor ,esto está en Archivo → Abrir diccionario .)

Para designar qué aplicación debe ser el objetivo de dicho mensaje, AppleScript usa una construcción "tell":

decirle a  la aplicación  "Microsoft Word"  dejar de fumar final  tell

Alternativamente, el tell puede expresarse en una línea usando un infinitivo :

dile a la  aplicación  "Microsoft Word"  que se  cierre

Para los eventos en el "Core Suite" (activar, abrir, reabrir, cerrar, imprimir y salir), la aplicación se puede suministrar como el objeto directo a los comandos transitivos:

salir de la  aplicación  "Microsoft Word"

El concepto de jerarquía de objetos se puede expresar mediante bloques anidados:

decirle a  la aplicación  "QuarkXPress"  tell  documento  1  tell  página  2  tell  texto  cuadro  1  juego de  palabra  5  a  "Apple"  final  tell  final  tell  final  tell final  tell

El concepto de jerarquía de objetos también se puede expresar mediante frases preposicionales anidadas :

píxel  7  de la  fila  3  de la  imagen TIFF  "mi mapa de bits" 

que en otro lenguaje de programación podría expresarse como llamadas a métodos secuenciales , como en este pseudocódigo :

getTIFF ( "mi mapa de bits" ). getRow ( 3 ). getPixel ( 7 );

AppleScript incluye sintaxis para el recuento ordinal, "el primer párrafo", así como cardinal, "párrafo uno". Del mismo modo, los números en sí mismos pueden denominarse texto o numéricamente, se admiten "cinco", "quinto" y "5"; son sinónimos en AppleScript. Además, la palabra "el" puede usarse legalmente en cualquier parte del script para mejorar la legibilidad: no tiene ningún efecto sobre la funcionalidad del script.

Ejemplos de guiones [ editar ]

Una calculadora a prueba de fallas:

decirle a la  aplicación  "Finder" - Establecer variables establecer  the1  en el  texto devuelto  de  ( mostrar el cuadro de diálogo  "1st"  respuesta predeterminada  "Número aquí" botones { "Continuar" } botón predeterminado 1 ) establecer the2 en el texto devuelto de ( mostrar cuadro de diálogo "2nd" predeterminado botones de respuesta "Número aquí" { "Continuar"} botón predeterminado 1 ) intente configurar el 1 en                       the1  como  entero establezca  the2  en  the2  como  entero en el  cuadro de diálogo de visualización de errores "Solo puede ingresar números en una calculadora". con título "ERROR" botones { "OK" } botón predeterminado 1 regresar fin intentar          -- ¿Agregar? Si  el  botón de regresar  de  ( diálogo sobre la pantalla  "Agregar?"  botones  { "No" ,  "Sí" }  predeterminado  botón  2 )  es  "Sí",  a continuación, establecer  ans  a  ( the1  +  the2 ) de diálogo muestran  ans  con  el título  "respuesta"  botones  { " Aceptar " }  botón predeterminado  1 decir ans - ¿Restar? de lo contrario, si el botón regresó de       ( Diálogo sobre la pantalla  "? Sustraer"  botones  { "No" ,  "Sí" }  predeterminado  botón  2 )  es  "Sí",  a continuación, establecer  ans  a  ( the1  -  the2 ) de diálogo muestran  ans  con  el título  "respuesta"  botones  { "OK" }  predeterminado  botón  1 digo  ans - ¿Multiplicar? de lo contrario,  si  el  botón volvió  de  ( cuadro de diálogo de visualización  "Multiplicar?" botones { "No" ,  "Sí" }  predeterminado  botón  2 )  es  "Sí",  a continuación, establecer  ans  a  ( The1  *  the2 ) de diálogo muestran  ans  con  el título  "respuesta"  botones  { "OK" }  predeterminado  botón  1 digamos  ans - Divide? de lo contrario,  si  el  botón volvió  de  ( mostrar el diálogo  "Dividir?"  botones  { "No" ,  "Sí"} por defecto  el botón  2 )  es  "Sí",  a continuación, establecer  ans  a  ( the1  /  the2 ) de diálogo muestran  ans  con  el título  "respuesta"  botones  { "OK" }  predeterminado  botón  1 por ejemplo  la American National Standard demás retardo  1 digamos  "No ha seleccionado una función. La la operación se ha cancelado ". terminar  sifin  decir

Una secuencia de cuadro de diálogo simple de nombre de usuario y contraseña . Aquí, el nombre de usuario es John y la contraseña es app123:

decirle a la  aplicación  "Finder" establecer  passAns  en  "app123" establecer  userAns  en  "John" si  el  texto devuelto  de  ( cuadro de diálogo de visualización  "Nombre de usuario"  respuesta predeterminada  "" ) es userAns y luego mostrar el cuadro de diálogo "Corregir" botones { "Continuar" } botón predeterminado 1 si el texto regresó de ( mostrar el cuadro de diálogo "Nombre de usuario: John" & return &"Contraseña"                     botones de respuesta  predeterminada ""  { "Continuar" } botón predeterminado 1 con respuesta oculta ) es passAns y luego muestra el cuadro de diálogo "Acceso concedido" botones { "OK" } botón predeterminado 1 más muestra el cuadro de diálogo "Contraseña incorrecta" botones { "OK" } botón predeterminado 1 end if else mostrar los botones de diálogo "Nombre de usuario incorrecto" { "Aceptar"}                           por defecto  botón  1 final  si final  tell

Herramientas de desarrollo [ editar ]

Editores de guiones [ editar ]

Los editores de scripts proporcionan un entorno de programación unificado para AppleScripts, que incluye herramientas para componer, validar, compilar, ejecutar y depurar scripts. También proporcionan mecanismos para abrir y ver diccionarios de AppleScript desde aplicaciones con secuencias de comandos, guardar secuencias de comandos en varios formatos (archivos de secuencias de comandos compilados, paquetes de aplicaciones, paquetes de secuencias de comandos y archivos de texto sin formato) y, por lo general, proporcionan funciones como resaltado de sintaxis y fragmentos de código escritos previamente. .

De Apple [ editar ]

Editor de AppleScript (Editor de secuencias de comandos)
El editor para AppleScript empaquetado con macOS, llamado AppleScript Editor en Mac OS X Snow Leopard (10.6) a través de OS X Mavericks (10.9) y Script Editor en todas las versiones anteriores y posteriores de macOS. Los scripts se escriben en ventanas de edición de documentos donde se pueden compilar y ejecutar, y estas ventanas contienen varios paneles en los que la información registrada, los resultados de la ejecución y otra información está disponible para fines de depuración. El acceso a diccionarios de secuencias de comandos y fragmentos de código escritos previamente está disponible a través de los menús de la aplicación. Desde OS X Yosemite (10.10), Script Editor incluye la capacidad de escribir tanto en AppleScript como en JavaScript . [13]
Xcode
Un conjunto de herramientas para desarrollar aplicaciones con funciones para editar AppleScripts o crear aplicaciones completas escritas con AppleScript.

De terceros [ editar ]

Depurador de scripts , de Late Night Software
Un IDE comercial de terceros para AppleScript. El depurador de scripts es un entorno AppleScript más avanzado que permite al escritor de scripts depurar AppleScripts mediante pasos únicos , puntos de interrupción , entrada y salida de funciones / subrutinas, seguimiento de variables, etc. El depurador de scripts también contiene un navegador de diccionario avanzado que permite al usuario ver el diccionario en acción en situaciones del mundo real. Es decir, en lugar de solo una lista de lo que cubre el diccionario, se puede abrir un documento en Pages, por ejemplo, y ver cómo se aplican los términos del diccionario a ese documento, lo que facilita la determinación de las partes del diccionario que se deben utilizar. El depurador de scripts no está diseñado para crear scripts con una GUI, aparte de las alertas y los diálogos básicos, sino que se centra más en la codificación y depuración de scripts.
Smile y SmileLab
Un IDE comercial / gratuito de terceros para AppleScript, escrito en su totalidad en AppleScript. [14] Smile es gratis y está diseñado principalmente para el desarrollo de AppleScript. SmileLab es un software comercial con amplias adiciones para análisis numérico, gráficos, automatización de máquinas y producción web. Smile y SmileLab utilizan una variedad de ventanas diferentes: ventanas AppleScript para ejecutar y guardar scripts completos, terminales AppleScript para probar el código línea por línea, ventanas Unicode para trabajar con texto y XML. Los usuarios pueden crear interfaces complejas, llamadas diálogos, para situaciones en las que los diálogos integrados en AppleScript son insuficientes.
ASObjC Explorer 4, de Shane Stanley
Un IDE comercial de terceros descontinuado para AppleScript, especialmente para AppleScriptObjC . [15] La característica principal es Cocoa : registro de objetos / eventos, depuración y finalización de código. Los usuarios pueden leer eventos y objetos de Cocoa como otras aplicaciones programables. Esta herramienta se creó originalmente para las bibliotecas AppleScript (disponible en OS X Mavericks ). Las bibliotecas AppleScript tienen como objetivo componentes AppleScript reutilizables y admiten el diccionario AppleScript integrado (sdef). ASObjC Explorer 4 también puede ser un editor de scripts de Xcode externo.
FaceSpan, de Late Night Software
Un IDE comercial de terceros descontinuado para crear aplicaciones AppleScript con interfaces gráficas de usuario. [dieciséis]

Lanzadores de secuencias de comandos [ editar ]

Los AppleScripts se pueden ejecutar desde un editor de secuencias de comandos, pero generalmente es más conveniente ejecutar las secuencias de comandos directamente, sin abrir una aplicación de edición de secuencias de comandos. Hay varias opciones para hacerlo:

Applets
Los AppleScripts se pueden guardar desde un editor de scripts como aplicaciones (llamados subprogramas o droplets cuando aceptan entradas mediante arrastrar y soltar ). [3] : 69 Applets se pueden ejecutar desde el Dock , desde la barra de herramientas de las ventanas del Finder , desde Spotlight , desde lanzadores de aplicaciones de terceros o desde cualquier otro lugar donde se puedan ejecutar aplicaciones.
Acciones de carpeta
Mediante las acciones de carpeta de AppleScript, se pueden iniciar secuencias de comandos cuando se producen cambios específicos en las carpetas (como agregar o eliminar archivos). [17] Las acciones de carpeta se pueden asignar haciendo clic en una carpeta y seleccionando Configuración de acciones de carpeta ... en el menú contextual; la ubicación de este comando difiere ligeramente en Mac OS X 10.6.x de versiones anteriores. Esta misma acción se puede lograr con utilidades de terceros como Hazel. [18]
Lanzadores de teclas de acceso rápido
Los atajos de teclado se pueden asignar a AppleScripts en el menú de secuencia de comandos usando el Panel de preferencias de configuración de teclado y mouse en Preferencias del sistema . Además, se encuentran disponibles varias utilidades de terceros: Alfred , [19] FastScripts, [20] Keyboard Maestro , [21] QuicKeys, [22] Quicksilver , [23] TextExpander [24], que pueden ejecutar AppleScripts bajo demanda usando la tecla combinaciones.
Menú de guiones
Este menú de todo el sistema proporciona acceso a AppleScripts desde la barra de menú de macOS, visible sin importar qué aplicación se esté ejecutando. [25] (Además, muchas aplicaciones de Apple, algunas aplicaciones de terceros y algunos complementos proporcionan sus propios menús de secuencia de comandos. Estos pueden activarse de diferentes maneras, pero todas funcionan esencialmente de la misma manera). el menú de secuencia de comandos lo inicia. Desde Mac OS X 10.6.x, el menú de secuencias de comandos de todo el sistema se puede habilitar desde las preferencias del Editor de secuencias de comandos; en versiones anteriores de Mac OS X, se podía habilitar desde la aplicación Utilidad AppleScript. Cuando se habilita por primera vez, el menú de secuencias de comandos muestra una biblioteca predeterminada de AppleScripts funcionales bastante genéricos, que también se pueden abrir en el Editor de secuencias de comandos y usarse como ejemplos para aprender AppleScript. Los scripts se pueden organizar para que solo aparezcan en el menú cuando determinadas aplicaciones están en primer plano.
Línea de comando Unix y launchd
AppleScripts se puede ejecutar desde la línea de comandos de Unix, o desde launchd para tareas programadas, [3] : 716 usando la herramienta de línea de comandos osascript. [26] La herramienta osascript puede ejecutar scripts compilados (archivos .scpt) y archivos de texto sin formato (archivos .applescript; estos son compilados por la herramienta en tiempo de ejecución). Las aplicaciones de script se pueden ejecutar usando el comando open de Unix.

Problemas relacionados con las secuencias de comandos [ editar ]

Bibliotecas AppleScript
Módulos AppleScript reutilizables (disponibles desde OS X Mavericks ), escritos en AppleScript o AppleScriptObjC y guardados como archivos de script o paquetes en ciertas ubicaciones, [27] que se pueden llamar desde otros scripts. Cuando se guarda como un paquete, una biblioteca puede incluir un archivo de diccionario de AppleScript (sdef), [28] por lo que funciona como una adición de scripting pero escrito en AppleScript o AppleScriptObjC.
AppleScript Studio
Un marco para adjuntar interfaces Cocoa a aplicaciones AppleScript, parte del paquete Xcode en Mac OS X 10.4 y 10.5, ahora en desuso en favor de AppleScriptObjC. [29] : 438
AppleScriptObjC
Un marco de software de desarrollo Cocoa , también llamado AppleScript / Objective-C o ASOC, [30] parte del paquete Xcode desde Mac OS X Snow Leopard . [31] AppleScriptObjC permite a AppleScripts utilizar clases y métodos Cocoa directamente. [32] La siguiente tabla muestra la disponibilidad de AppleScriptObjC en varias versiones de macOS: [33]
Automator
Un entorno de edición modular y gráfico en el que los flujos de trabajo se crean a partir de acciones. Tiene la intención de duplicar muchas de las funciones de AppleScript sin la necesidad de tener conocimientos de programación. Automator tiene una acción diseñada específicamente para contener y ejecutar AppleScripts, para tareas que son demasiado complejas para el marco simplificado de Automator. [34]
Aplicaciones del sistema central programables
Estas aplicaciones solo en segundo plano, empaquetadas con macOS, se utilizan para permitir que AppleScript acceda a funciones que normalmente no serían programables. A partir de Mac OS X 10.6.3, incluyen las aplicaciones programables para VoiceOver (paquete de lector de pantalla braille y auditivo programable), Eventos del sistema (control de aplicaciones no programables y acceso a ciertas funciones del sistema y operaciones básicas de archivos), Utilidad de configuración de la impresora ( Utilidad programable para manejar trabajos de impresión), Eventos de imagen (manipulación de imágenes centrales), HelpViewer (utilidad programable para mostrar pantallas de ayuda), Eventos de base de datos (interfaz mínima de base de datos SQLite3) y Utilidad AppleScript (para programar algunas preferencias relacionadas con AppleScript), también como algunas aplicaciones de utilidad utilizadas por el sistema.
Adiciones de secuencias de comandos (OSAX)
Complementos para AppleScript desarrollados por Apple o terceros. [35] Están diseñados para extender el conjunto de comandos incorporado, expandiendo las características de AppleScript y haciéndolo algo menos dependiente de la funcionalidad proporcionada por las aplicaciones. macOS incluye una colección de adiciones de secuencias de comandos denominadas Adiciones estándar ( StandardAdditions.osax ) que agrega un conjunto de comandos y clases que no forman parte de las funciones principales de AppleScript, incluidos los cuadros de diálogo de interacción del usuario, lectura y escritura de archivos, comandos del sistema de archivos, funciones de fecha y operaciones matemáticas y de texto; sin este OSAX, AppleScript no tendría capacidad para realizar muchas acciones básicas que no proporciona directamente una aplicación.

Conceptos básicos del idioma [ editar ]

Clases (tipos de datos) [ editar ]

Si bien las aplicaciones pueden definir clases especializadas (o tipos de datos), AppleScript también tiene varias clases integradas. Estas clases de datos básicas están directamente respaldadas por el lenguaje y tienden a ser reconocidas universalmente por aplicaciones que se pueden programar. Los más comunes son los siguientes:

  • Objetos básicos
    • aplicación : un objeto de aplicación, utilizado principalmente como un especificador para declaraciones tell ( tell application "Finder" …).
    • script : un objeto de script. Los objetos de secuencia de comandos son contenedores de secuencias de comandos. Cada AppleScript crea un objeto de secuencia de comandos cuando se ejecuta, y los objetos de secuencia de comandos se pueden crear dentro de AppleScripts.
    • clase : un meta-objeto que especifica el tipo de otros objetos.
    • referencia : un objeto que encapsula un especificador de objeto no evaluado que puede o no apuntar a un objeto válido. Puede ser evaluado bajo demanda accediendo a su contentspropiedad.
  • Objetos de datos estándar
    • constante : un valor constante . Hay una serie de constantes definidas por el lenguaje, tales como pi, tab, y linefeed.
    • booleano : un valor booleano verdadero / falso. En realidad, una subclase de constant.
    • número : una superclase abstracta de y rara vez utilizada .integerreal
    • entero : un entero . Puede manipularse con operadores matemáticos integrados.
    • real : un número de punto flotante ( real ). Puede manipularse con operadores matemáticos integrados.
    • fecha : una fecha y una hora.
    • texto : texto. En las versiones de AppleScript anteriores a la 2.0 (Mac OS X 10.4 y posteriores) la textclase era distinta de stringy Unicode text, y las tres se comportaban de manera algo diferente; en 2.0 (10.5) y posteriores, todos son sinónimos y todo el texto se maneja como codificado en UTF-16 (“ Unicode ”). [36]
  • Contenedores
    • lista : una lista ordenada de objetos. Puede contener cualquier clase, incluidas otras listas y clases definidas por aplicaciones.
    • registro : una lista con clave de objetos. Como una lista, excepto estructurada como pares clave-valor. El acceso con clave en tiempo de ejecución no es compatible; todas las claves deben ser identificadores constantes en tiempo de compilación.
  • Sistema de archivos
    • alias : una referencia a un objeto del sistema de archivos (archivo o carpeta). El alias mantendrá su vínculo con el objeto si el objeto se mueve o se le cambia el nombre.
    • archivo : una referencia a un objeto del sistema de archivos (archivo o carpeta). Esta es una referencia estática y puede apuntar a un objeto que no existe actualmente.
    • Archivo POSIX : una referencia a un objeto del sistema de archivos (archivo o carpeta), en texto sin formato, utilizando la notación de barra (/) estilo Unix ( POSIX ). No es un tipo de datos verdadero, ya que AppleScript convierte automáticamente los archivos POSIX en archivos normales cada vez que se utilizan. [37]
  • Diverso
    • Color RGB : especifica un triplete RGB (en formato de color de alta densidad de 16 bits ), para usar en comandos y objetos que trabajan con colores.
    • tipos de unidad : clase que convierte entre unidades estándar. Por ejemplo, un valor se puede definir como square yardsy luego convertirlo square feetmediante conversión entre tipos de unidades (usando el asoperador).

Estructuras del lenguaje [ editar ]

Muchos procesos de AppleScript son administrados por bloques de código, donde un bloque comienza con un comando de comando y termina con una instrucción de comando final . Las estructuras más importantes se describen a continuación.

Condicionales [ editar ]

AppleScript ofrece dos tipos de condicionales.

- condicional simple si  x  <  1,000  después  conjunto  x  a  x  +  1- Condicional compuesto si  x  es mayor que  3  entonces  - comandos else  - otros comandos terminan  si

Bucles [ editar ]

El ciclo de repetición de AppleScript viene en varios sabores ligeramente diferentes. Todos ejecutan el bloque entre las líneas de repetición y finalización de repetición varias veces. El bucle se puede detener prematuramente con la repetición de salida del comando .

Repite para siempre.

repetir  - comandos que se van a repetir fin de  repetir

Repita una determinada cantidad de veces.

repetir  10  veces  - los comandos se repetirán fin de  repetir

Bucles condicionales. El bloque dentro del ciclo repeat while se ejecuta siempre que la condición se evalúe como verdadera. La condición se vuelve a evaluar después de cada ejecución del bloque. El ciclo repeat until es idéntico, pero el bloque se ejecuta siempre que la condición se evalúe como falsa.

set  x  a  5 de repetición  , mientras que  x  >  0  conjunto  x  a  x  -  1 final  de repeticiónset  x  a  5 repetición  hasta que  x   0  conjunto  x  a  x  -  1 final  de repetición

Bucle con una variable. Al iniciar el ciclo, la variable se asigna al valor inicial. Después de cada ejecución del bloque, el valor de paso opcional se agrega a la variable. El valor de paso predeterminado es 1.

- repite el bloque 2000 veces, obtengo todos los valores de 1 a 2000 repetir  con  i  de  1  a  2000  - comandos a repetir fin de  repetir- repite el bloque 4 veces, obtengo los valores 100, 75, 50 y 25 repite  con  i  de  100  a  25  por  - 25  - comandos que se van a repetir end  repeat

Enumera una lista. En cada iteración, establezca loopVariable en un nuevo elemento en la lista dada

establecer el  total  en  0 repetir  con  loopVariable  en  { 1 ,  2 ,  3 ,  4 ,  5 } establecer el  total  en  total  +  loopVariable final  repetir

Una variación importante en esta estructura de bloque es en forma de sobre - extremo ... bloques que se utilizan para definir los manipuladores (función similar a subrutinas). Los controladores comienzan con on functionName () y terminan con end functionName , y no se ejecutan como parte del flujo de secuencia de comandos normal a menos que se llamen desde algún lugar de la secuencia de comandos.

Los controladores también se pueden definir usando "to" en lugar de "on" y se pueden escribir para aceptar parámetros etiquetados, no encerrados entre paréntesis.

Hay cuatro tipos de controladores predefinidos en AppleScript (ejecutar, abrir, inactivo y salir), cada uno de los cuales se crea de la misma manera que el controlador de ejecución que se muestra arriba.

Ejecutar controlador
Define el código principal del script, al que se llama cuando se ejecuta el script. Los bloques del controlador de ejecución son opcionales, a menos que se pasen argumentos al script. Si se omite un bloque de controlador de ejecución explícito, entonces todo el código que no está contenido dentro de los bloques de controlador se ejecuta como si estuviera en un controlador de ejecución implícito.
Manipulador abierto
Definido usando "en los artículos abiertos".
en  abierto  theitems  repiten  con  thisItem  en  theitems  decirle a  la aplicación  "Buscador"  para  actualizar  thisItem  final  de repetición  extremo  abierto

Cuando una secuencia de comandos que contiene un "controlador abierto" se guarda como un subprograma, el subprograma se convierte en una gota. Una gota se puede identificar en el Finder por su icono, que incluye una flecha, lo que indica que los elementos se pueden colocar en el icono. La gota está abierta handler se ejecuta cuando los archivos o carpetas se colocan en el icono de la gota. Las referencias a los elementos colocados en el icono de la gota se pasan al script de la gota como parámetro del controlador abierto. Una gota también se puede iniciar de la misma manera que un subprograma normal, ejecutando su manejador de ejecución.

Controlador inactivo
Una subrutina que el sistema ejecuta periódicamente cuando la aplicación está inactiva.
en inactivo -  código para ejecutar cuando la ejecución de la secuencia de comandos se ha completado  return  60  - número de segundos para pausar antes de ejecutar el controlador inactivo nuevamente finaliza inactivo

Un controlador inactivo se puede utilizar en subprogramas o droplets guardados como subprogramas permanentemente abiertos, y es útil para scripts que buscan datos o eventos particulares. La duración del tiempo de inactividad es de 30 segundos por defecto, [38] pero se puede cambiar incluyendo una declaración 'return x' al final de la subrutina, donde x es la cantidad de segundos que el sistema debe esperar antes de ejecutar el controlador nuevamente. .

Salir del controlador
Un controlador que se ejecuta cuando el subprograma recibe una solicitud de salida. Esto se puede utilizar para guardar datos o realizar otras tareas finales antes de salir.
al  salir -  comandos para ejecutar antes de que el script se  cierre continuar  salir  - requerido para que el script realmente salga end  quit
Objetos de script

Los objetos de script se pueden definir explícitamente usando la sintaxis:

script  scriptName  : comandos y controladores específicos del script final del  script

Los objetos de script pueden usar las mismas estructuras 'tell' que se usan para los objetos de aplicación, y pueden cargarse y guardarse en archivos. El tiempo de ejecución en tiempo de ejecución se puede reducir en algunos casos mediante el uso de objetos de script.

Información miscelánea [ editar ]

  • Las variables no se escriben estrictamente y no es necesario declararlas. Las variables pueden tomar cualquier tipo de datos (incluidos scripts y funciones). Los siguientes comandos son ejemplos de la creación de variables:
    establecer  variable1  en  1  - crear una variable entera llamada variable1 establecer  variable2  en  "Hola"  - crear una variable de texto llamada variable2 copiar  { 17 ,  "doubleday" }  en  variable3  - crear una variable de lista llamada variable3 establecer  { variable4 ,  variable5 }  a  variable3  : copie los elementos de la lista de variable3 en variables independientes variable4 y variable5 establezca  variable6  en el  script  myScript  : establezca una variable en una instancia de un script
  • Los objetos de script son objetos completos: pueden encapsular métodos y datos y heredar datos y comportamiento de un script principal.
  • Las subrutinas no se pueden llamar directamente desde los bloques de indicación de la aplicación. Utilice las palabras clave "mi" o "de mí" para hacerlo.
decirle a  la aplicación  "Buscador"  conjunto  X  a  mi  myHandler ()  - o  conjunto  X  a  myHandler ()  de  mi termino  tellon  myHandler () - los  comandos terminan  myHandler

El uso de la misma técnica para escribir comandos de adición de secuencias de comandos puede reducir los errores y mejorar el rendimiento.

decirle a la  aplicación  "Finder" establecer  anyNumber  en  mi  ( número aleatorio  de  5  a  50 ) end  tell

Arquitectura de secuencias de comandos abierta [ editar ]

Un aspecto importante de la implementación de AppleScript es Open Scripting Architecture ( OSA ). [39] Apple proporciona OSA para otros lenguajes de scripting y productos de scripting / automatización de terceros como QuicKeys y UserLand Frontier, para funcionar en el mismo estado que AppleScript. AppleScript se implementó como un componente de secuencias de comandos , y las especificaciones básicas para la interfaz de dichos componentes con el OSA eran públicas, lo que permitió a otros desarrolladores agregar sus propios componentes de secuencias de comandos al sistema. API de cliente público para cargar, guardar y compilar scripts funcionaría igual para todos esos componentes, lo que también significaba que los applets y droplets podían contener scripts en cualquiera de esos lenguajes de scripting.

Una característica de OSA son las adiciones de secuencias de comandos , o OSAX para la ampliación de la arquitectura de secuencias de comandos abierta , [35] que se inspiraron en los comandos externos de HyperCard . Las adiciones de secuencias de comandos son bibliotecas que permiten a los programadores extender la función de AppleScript. Los comandos incluidos como adiciones de secuencias de comandos están disponibles en todo el sistema y no dependen de una aplicación (consulte también § Bibliotecas AppleScript ). AppleScript Editor también puede editar y ejecutar directamente algunos de los lenguajes OSA.

JavaScript para automatización [ editar ]

En OS X Yosemite y versiones posteriores de macOS, el componente JavaScript for Automation ( JXA ) sigue siendo la única alternativa seria del lenguaje OSA a AppleScript, [13] aunque las versiones para Macintosh de Perl , Python , Ruby y Tcl son compatibles con medios de trabajo nativos. con los eventos de Apple sin ser componentes de OSA. [29] : 516

JXA también proporciona una interfaz de idioma extranjero Objective-C (y lenguaje C). [13] Al ser un entorno basado en el motor JavaScriptCore de WebKit, el conjunto de funciones de JavaScript está sincronizado con el motor del navegador Safari del sistema. JXA proporciona un sistema de módulo de JavaScript y también es posible utilizar CommonJS módulos a través de browserify. [40]

Ver también [ editar ]

  • BBEdit : un editor de texto altamente programable

Referencias [ editar ]

  1. ^ "Fecha de lanzamiento de OS X 10.10 Yosemite" . Consultado el 16 de noviembre de 2014 .
  2. ↑ a b c d Goldstein, Adam (2005). AppleScript: el manual que falta . Sebastopol, CA: O'Reilly Media . ISBN 0596008503. OCLC  56912218 .
  3. ^ a b c d e f g h i Sanderson, Hamish; Rosenthal, Hanaan (2009). Aprenda AppleScript: la guía completa de secuencias de comandos y automatización en Mac OS X (3.ª ed.). Berkeley: Apriete . doi : 10.1007 / 978-1-4302-2362-7_27 . ISBN 9781430223610. OCLC  308193726 .
  4. ^ Flynn, Laurie (27 de febrero de 1989). "Apple reflexiona sobre la estandarización de HyperTalk" . InfoWorld . pag. 31.
  5. ↑ a b Cook, William (2007). "AppleScript" (PDF) . Historia de los lenguajes de programación (HOPL III) . Actas de la tercera conferencia ACM SIGPLAN. Asociación de Maquinaria de Computación : 1–21. doi : 10.1145 / 1238844.1238845 . ISBN  9781595937667. S2CID  220938191 .
  6. ^ "Referencia de comandos de la Guía del lenguaje AppleScript: hacer script de shell" . developer.apple.com . Consultado el 15 de septiembre de 2019 .
  7. ^ "Grandes éxitos de Apple: 30 productos importantes" . macworld.com . Consultado el 12 de septiembre de 2019 .
  8. ^ Gruber, John (marzo de 2013). "La insólita persistencia de AppleScript" . Macworld . 30 (3): 100.
  9. ^ Lovejoy, Ben (17 de noviembre de 2016). "Sal Soghoian dice 'pregúntele a Apple' sobre el futuro de la automatización de usuarios de Mac a medida que la empresa elimina su puesto" . 9to5mac.com . Consultado el 8 de mayo de 2017 .
  10. ^ Evans, Jonny (17 de noviembre de 2016). "¿Realmente Apple quiere matar a Automator, AppleScript? El despido del veterano gurú de los desarrolladores de Apple envía ondas de choque a toda la comunidad Mac" . Computerworld .com . Consultado el 8 de mayo de 2017 .
  11. ^ Gamet, Jeff (23 de noviembre de 2016). "La intención de Apple no es la misma que comprometerse con la automatización de mac" . macobserver.com . Consultado el 8 de mayo de 2017 .
  12. ^ "Aplicaciones programables" . developer.apple.com . Consultado el 26 de julio de 2018 .
  13. ↑ a b c Siracusa, John (16 de octubre de 2014). "OS X 10.10 Yosemite: la revisión de Ars Technica: automatización de JavaScript" . Ars Technica . Consultado el 8 de mayo de 2017 .
  14. ^ "Página de inicio de Smile y SmileLab" . satimage.fr . Consultado el 8 de mayo de 2017 .
  15. ^ "ASObjC Explorer 4 descontinuado" . macosxautomation.com . Archivado desde el original el 21 de junio de 2017 . Consultado el 8 de mayo de 2017 .
  16. ^ "Diario de Mark Alldritt» FaceSpan " . blog.latenightsw.com . Consultado el 8 de mayo de 2017 .
  17. ^ "Guía del lenguaje AppleScript: referencia de acciones de carpeta" . developer.apple.com . Consultado el 8 de mayo de 2017 .
  18. ^ Miller, Dan (22 de diciembre de 2010). "Revisión de la cápsula: Hazel 2.3" . Macworld .com . Consultado el 8 de mayo de 2017 .
  19. ^ Beam, Brian (10 de febrero de 2015). "Revisión de Alfred: este lanzador de aplicaciones para Mac sigue brillando, pero Alfred Remote no se acumula" . Macworld .com . Consultado el 10 de mayo de 2017 .
  20. ^ Frakes, Dan (2 de junio de 2011). "Revisión de la cápsula: FastScripts 2.5" . Macworld .com . Consultado el 8 de mayo de 2017 .
  21. ^ Breen, Christopher (4 de junio de 2013). "Mac Gems: Keyboard Maestro 6 es un genio en tareas repetitivas" . Macworld .com . Consultado el 10 de mayo de 2017 .
  22. ^ Breen, Christopher (7 de mayo de 2010). "Revisión de la cápsula: QuicKeys 4" . Macworld .com . Consultado el 8 de mayo de 2017 .
  23. ^ "AppleScripts - Quicksilver Wiki" . qsapp.com . Consultado el 10 de mayo de 2017 .
  24. ^ Fleishman, Glenn (12 de junio de 2015). "Revisión de TextExpander 5" . Macworld .com . Consultado el 8 de mayo de 2017 .
  25. ^ "Guía de secuencias de comandos de automatización de Mac: utilizando el menú de secuencias de comandos de todo el sistema" . developer.apple.com . Consultado el 8 de mayo de 2017 .
  26. ^ "osascript (1) Página del manual de Mac OS X" . developer.apple.com . Consultado el 8 de mayo de 2017 .
  27. ^ "Bibliotecas AppleScript" . macosautomation.com . Consultado el 8 de mayo de 2017 .
  28. ^ "WWDC 2013 Session 416: Introducción a las bibliotecas AppleScript" . asciiwwdc.com . Consultado el 8 de mayo de 2017 .
  29. ↑ a b Neuburg, Matt (2006). AppleScript: la guía definitiva (2ª ed.). Pekín: O'Reilly Media . ISBN 0596102119. OCLC  68694976 .
  30. ^ Tsai, Michael (29 de septiembre de 2014). "AppleScript y Yosemite" . mjtsai.com . Consultado el 9 de mayo de 2017 .
  31. ^ "Notas de la versión de AppleScriptObjC" . developer.apple.com . Consultado el 8 de mayo de 2017 .
  32. ^ Waldie, Ben (6 de septiembre de 2012). "Construyendo una aplicación básica AppleScriptObjC (Cocoa-AppleScript) con Xcode" . peachpit.com . Consultado el 9 de mayo de 2017 .
  33. ^ Tabla adaptada de: Naganoya, Takaaki. "Guía de secuencias de comandos de ASObjCExtras" (PDF) . piyocast.com . Consultado el 9 de mayo de 2017 .
  34. ^ "Introducción al tutorial de acciones de Automator AppleScript" . developer.apple.com . Consultado el 8 de mayo de 2017 .
  35. ^ a b "Nota técnica TN1164: adiciones de secuencias de comandos para Mac OS X" . developer.apple.com . Consultado el 8 de mayo de 2017 .
  36. ^ "Notas de la versión de AppleScript: cambios 10.5" . developer.apple.com . Consultado el 8 de mayo de 2017 .
  37. ^ "Archivo POSIX - Referencia de clase - Guía del lenguaje AppleScript" . developer.apple.com . Consultado el 8 de enero de 2018 .
  38. ^ "Guía del lenguaje AppleScript: controladores en aplicaciones de secuencias de comandos" . developer.apple.com . Consultado el 21 de julio de 2013 .
  39. ^ "Descripción general de AppleScript: Arquitectura de secuencias de comandos abierta" . developer.apple.com . Consultado el 8 de mayo de 2017 .
  40. ^ "Importación de secuencias de comandos" . GitHub . Libro de cocina JXA. 6 de diciembre de 2019 . Consultado el 9 de diciembre de 2019 .

Lectura adicional [ editar ]

  • "Guía del lenguaje AppleScript" . developer.apple.com . 2016 . Consultado el 9 de mayo de 2017 .Versión anterior (2015) en formato PDF disponible en: CiteSeer x :  10.1.1.697.5220
  • Munro, Mark Conway (2010). AppleScript . Referencia para desarrolladores. Wiley. ISBN 978-0-470-56229-1.
  • Rosenthal, Hanaan; Sanderson, Hamish (2010). Aprenda AppleScript: la guía completa de secuencias de comandos y automatización en Mac OS X (tercera edición). Presione . ISBN 978-1-4302-2361-0.
  • Soghoian, Sal ; Cheeseman, Bill (2009). Serie de formación de Apple: AppleScript 1-2-3 . Peachpit Press . ISBN 978-0-321-14931-2.
  • Cook, William (2007). "AppleScript" (PDF) . Historia de los lenguajes de programación (HOPL III) . Actas de la tercera conferencia ACM SIGPLAN. ACM: 1–21. doi : 10.1145 / 1238844.1238845 . ISBN 9781595937667. S2CID  220938191 .
  • Ford Jr., Jerry Lee (2007). Programación AppleScript para principiantes absolutos . Tecnología del curso . ISBN 978-1-59863-384-9.
  • Neuburg, Matt (2006). AppleScript: la guía definitiva . O'Reilly Media . ISBN 0-596-10211-9.
  • Goldstein, Adam (2005). AppleScript: El manual perdido . O'Reilly Media. ISBN 0-596-00850-3.
  • Trinko, Tom (2004). AppleScript para principiantes . Para tontos . ISBN 978-0-7645-7494-8.

Enlaces externos [ editar ]

  • AppleScript en Curlie (el contenido del sitio tiene años de antigüedad)
  • "Descripción general de AppleScript" . developer.apple.com . 2007 . Consultado el 7 de noviembre de 2020 .
  • "AppleScript para programadores de Python (cuadro comparativo)" . aurelio.net . 2005 . Consultado el 9 de mayo de 2017 .
  • "AppleScripts de Doug para iTunes" . dougscripts.com . Consultado el 9 de mayo de 2017 .
  • "Automatización Mac OS X" . macosautomation.com . Consultado el 9 de mayo de 2017 .
  • "Comunidad MacScripter AppleScript" . macscripter.net . Consultado el 9 de mayo de 2017 .