Хоча будь-який контекст сценаріїв може робити все, що може бути іншим (оскільки сценарії оболонки можуть викликати /usr/bin/osascript
запуск AppleScript, а AppleScript має do shell script
команду), дійсно є контексти, для яких один краще підходить, ніж інший.
Обидві мови сценаріїв - це "склеювати" мови - вони можуть робити мінімальні речі самостійно, а замість цього виконувати більшість своїх завдань, використовуючи можливості інших програм. Сценарії оболонки використовують протоколи Unix, тоді як у AppleScript є tell application
синтаксис.
Там, де вони розходяться, є те, що AppleScripts безпосередньо спілкуються із програмами для написання сценарію (майже завжди програми GUI), в той час як сценарії оболонки спілкуються в основному з програмами командного рядка (деякі з яких можуть викликати графічний інтерфейс користувача, але багато хто не робить).
Що стосується завдань управління файлами, обидва підходи можуть працювати. Можна Tell Application Finder
копіювати файли або виконувати cp
команду в сценарії оболонки. То навіщо використовувати один над іншим? Звичайно, деякі сценаристи більше знайомі з однією мовою, ніж інші, і тому вважають за краще використовувати цей інструмент. Але краще розглянемо користувача сценарію. AppleScript часто можна викликати в інтерфейсі Mac GUI: двічі клацнувши додаток AppleScript або перенести файли на одне або за допомогою меню AppleScript або на всій системі, або в межах певної програми. Такі програми, як Mail, можна налаштувати для запуску AppleScript на вхідні повідомлення для їх фільтрації. Для користувачів, які звикли використовувати Macs таким чином, як "Mac" (тобто від GUI), AppleScripts часто є більш доступними.
Сценарії оболонок часто (але не завжди) живуть у Терміналі. Якщо ви вже використовуєте термінал, запуск сценарію оболонки може бути зручнішим, ніж виклик AppleScript. З іншого боку, багато користувачів перестають вводити команди у вікні терміналу або навіть натискаючи файл сценарію, який відкриває вікно терміналу, щоб зробити свою магію. Мені особисто здається, що синтаксис скриптів оболонки є більш читабельним, ніж у AppleScripts, але я підозрюю, що в цьому меншості. Сценарії оболонок є звичними для користувачів різних Unix-подібних систем.
У будь-якому випадку обидва є потужним інструментом для отримання кращого контролю над вашим Mac.