Peroidcly在shell脚本中运行osascript来运行apple脚本

时间:2015-06-03 01:18:47

标签: bash shell applescript osx-yosemite geektool

我正在做什么

我定期运行一个shell脚本来检查我的屏幕分辨率。基于此,它将运行两个苹果脚本中的一个,它基本上改变了另一个应用程序(极客工具)的可见性。

我的问题

苹果手机本身运行良好。我知道osascript是调用苹果脚本的方法,因为如果我尝试直接运行它,它会说它“无法执行二进制文件”。但是,当我使用osascript $Home/path/smallscreen.scpt时,它会给我一个新错误:

osascript[61390:1405791] Error loading /Library/ScriptingAdditions/Adobe Unit Types.osax/Contents/MacOS/Adobe Unit Types:  dlopen(/Library/ScriptingAdditions/Adobe Unit Types.osax/Contents/MacOS/Adobe Unit Types, 262): no suitable image found.  
Did find: /Library/ScriptingAdditions/Adobe Unit Types.osax/Contents/MacOS/Adobe Unit Types: no matching architecture in universal wrapper
osascript: OpenScripting.framework - scripting addition "/Library/ScriptingAdditions/Adobe Unit Types.osax" declares no loadable handlers.

也许我只是误解了一些东西,但我认为应该直接从这个答案的底部运行脚本:https://stackoverflow.com/a/16071855/2522073

声称你可以像这样运行苹果脚本 osascript /Users/USERNAME/Desktop/foo.scpt

Shell代码:

rez=$(xdpyinfo | grep dimensions | awk '{print $2}' | awk -Fx '{print $1, $2}')
echo $rez> $HOME/Documents/Geeklets/Displays_temp.txt
rezold=`grep -s . $HOME/Documents/Geeklets/Displays_temp.txt`

if [ "$rezold" != "$rez" ]; then
    if [ "$rez" == "1280 777" ]; then
        osascript /Users/coolguy/Documents/Geeklets/smallscreen.scpt 
    else
        $HOME/Scripts/Geeklets/largescreen.scpt
    fi  
fi

我的Apple脚本:

tell application "GeekTool Helper"

    set smallGroup to group "small"
    set largeGroup to group "large"
    set defultGroup to group "Default Group"

    set visible of smallGroup to true
    set visible of largeGroup to false
    set visible of defultGroup to true  

end tell

我在Mac 10.10.3上运行它

1 个答案:

答案 0 :(得分:0)

这解决了我的问题。 https://helpx.adobe.com/photoshop/kb/unit-type-conversion-error-applescript.html

似乎是32位与64位问题的某一方面。不是编码问题!希望这最终会帮助别人。