Appleel Oneliner - PullRequest
       4

Appleel Oneliner

0 голосов
/ 05 ноября 2010

Можно ли объединить строки appleScript в одну (в ruby ​​это можно сделать с помощью ;)?

Ответы [ 4 ]

6 голосов
/ 05 ноября 2010

Не совсем. Максимум, что можно сделать, - это взять простое выражение if-then и сделать его одной строкой ...

if (variable) then 
    return true
end if

... становится ...

if (variable) then return true

Если вы включите команду osascript в сценарий оболочки, то многострочные сценарии должны быть разделены -e ...

osascript -e 'if (variable) then' -e 'return true' -e 'end if'

Но это примерно так. Файлы Applescript не являются простыми текстовыми файлами, как большинство других языков программирования (к сожалению), и мы должны полагаться на его специализированные редакторы для управления строками.

3 голосов
/ 27 мая 2015

Это зависит от вашего кода.

Когда вы используете AppleScript для сценариев GUI, вы часто можете записать несколько вложенных блоков Tell в одну строку.

Например, эти вложенные блоки Tell:

tell application "System Preferences"
    activate
end tell

tell application "System Events"
    tell application process "System Preferences"
        tell window "System Preferences"
            tell scroll area 1
                tell button "General"
                    click
                end tell
            end tell
        end tell
    end tell
end tell

Они также могут быть записаны как:

tell application "System Preferences" to activate
tell application "System Events" to tell application process "System Preferences" to tell window "System Preferences" to tell scroll area 1 to tell button "General" to click
0 голосов
/ 07 июня 2016

Я переставил AppleScript из блочного формата в формат одной строки:

Формат блока

tell application <application>
  activate
  open location <url>
end tell

Формат одной строки

osascript -e "tell application \"<application>\" to activate & open location \"<url>\"";

0 голосов
/ 17 января 2014

Если вы действительно хотите избежать -e и заставить все в одной строке, вы можете протолкнуть все через echo

osascript -e "`echo -e \"tell application \\"MyApp\\"\nactivate\nend tell\"`"

Где " становится \\", а новые строки становятся \n.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...