Embora um dos contextos de script possa fazer qualquer coisa que o outro possa fazer (porque os scripts de shell podem chamar /usr/bin/osascript
para invocar um AppleScript e o AppleScript possui o do shell script
comando), de fato existem contextos nos quais um é mais adequado que o outro.
Ambas as linguagens de script são linguagens de "cola" - elas próprias podem fazer o mínimo possível e, em vez disso, realizam a maioria de suas tarefas, invocando os recursos de outros programas. Os scripts de shell fazem uso de pipes Unix, enquanto o AppleScript possui a tell application
sintaxe.
Onde eles divergem é que o AppleScripts se comunica diretamente com aplicativos de script (quase sempre aplicativos de GUI), enquanto os scripts de shell se comunicam principalmente com programas de linha de comando (alguns dos quais podem chamar interfaces gráficas de usuário, mas muitos não).
Quando se trata de tarefas de gerenciamento de arquivos, ambas as abordagens podem funcionar. Pode- Tell Application Finder
se copiar arquivos ou executar o cp
comando em um script de shell. Então, por que usar um sobre o outro? Certamente alguns roteiristas estão mais familiarizados com um idioma que o outro e, portanto, preferem usar essa ferramenta. Mas uma consideração melhor é do usuário do script. Muitas vezes, o AppleScript pode ser chamado a partir da GUI do Mac: clicando duas vezes em um aplicativo AppleScript, ou soltando arquivos em um, ou usando um menu AppleScript em todo o sistema ou em um programa específico. Programas como o Mail podem ser configurados para executar um AppleScript nas mensagens recebidas para filtrá-los. Para usuários acostumados a usar Macs de maneira "semelhante a Mac" (ou seja, na GUI), os AppleScripts geralmente são mais acessíveis.
Os scripts de shell geralmente (mas nem sempre) vivem no Terminal. Se alguém já estiver usando o Terminal, executar um script de shell pode ser mais conveniente do que chamar um AppleScript. Por outro lado, muitos usuários ficam desanimados ao digitar comandos em uma janela do Terminal ou até clicar em um arquivo de script que abre uma janela do Terminal para fazer sua mágica. Pessoalmente, acho a sintaxe dos scripts de shell mais legível que a do AppleScripts, mas suspeito que eu seja uma minoria nisso. Os scripts de shell são familiares aos usuários de muitos sistemas diferentes do Unix.
De qualquer forma, ambas são ferramentas poderosas para obter melhor controle sobre o seu Mac.