是否可以将applescript行连接成一个(在ruby中可以使用;
)?
答案 0 :(得分:6)
不是真的。可以做的最多的是采用一个简单的if-then
语句并将其组成一行......
if (variable) then
return true
end if
... ...变为
if (variable) then return true
如果要在shell脚本中包含osascript
命令,则多行文字必须用-e
分隔...
osascript -e 'if (variable) then' -e 'return true' -e 'end if'
但那是关于它的程度。 Applescript文件不像大多数其他编程语言那样简单直观的文本文件(不幸的是),我们必须依靠其专业的编辑器进行线路管理。
答案 1 :(得分:3)
这取决于您的代码。
当您使用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
答案 2 :(得分:0)
如果你真的想避免-e
并强迫所有内容排在一行,你可以通过echo
推送所有内容
osascript -e "`echo -e \"tell application \\"MyApp\\"\nactivate\nend tell\"`"
其中"
变为\\"
,换行符变为\n
。
答案 3 :(得分:0)
我已将AppleScript从块格式重新排列为单行格式:
阻止格式
tell application <application>
activate
open location <url>
end tell
单行格式
osascript -e "tell application \"<application>\" to activate & open location \"<url>\"";