เรียกใช้ osascript แบบ Peroidcly ในเชลล์สคริปต์เพื่อเรียกใช้สคริปต์ Apple

ฉันกำลังทำอะไรอยู่

ฉันรันเชลล์สคริปต์เป็นระยะเพื่อตรวจสอบความละเอียดของหน้าจอ จากนี้มันจะรันหนึ่งในสองสคริปต์ของ Apple ซึ่งโดยพื้นฐานแล้วจะเปลี่ยนการมองเห็นในแอปพลิเคชันอื่น (เครื่องมือเกินบรรยาย)

ปัญหาของฉัน

Apple Scrip ทำงานได้ดีด้วยตัวเอง ฉันเข้าใจว่า osascript เป็นวิธีการเรียกสคริปต์ของ Apple เพราะถ้าฉันพยายามที่จะเรียกใช้โดยตรง มันจะบอกว่า "ไม่สามารถเรียกใช้ไฟล์ไบนารี่ได้" อย่างไรก็ตาม เมื่อฉันใช้ 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

อ้างว่าคุณสามารถเรียกใช้สคริปต์ Apple ของคุณได้เช่นนี้ osascript /Users/USERNAME/Desktop/foo.scpt


รหัสเชลล์:

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


person Howard    schedule 03.06.2015    source แหล่งที่มา
comment
ฉันกำลังอ่านเพิ่มเติมเกี่ยวกับเรื่องนี้เล็กน้อย ดูเหมือนว่าจะเกี่ยวข้องกับ 32 บิตและ 64 บิต ยังคงพยายามที่จะคิดออก   -  person Howard    schedule 03.06.2015


คำตอบ (1)


นี่ช่วยแก้ปัญหาของฉันได้ https://helpx.adobe.com/photoshop/kb/unit-type-conversion-error-applescript.html

ดูเหมือนว่าจะเป็นปัญหาด้าน 32 บิตและ 64 บิตบางส่วน ไม่ใช่ปัญหาการเข้ารหัส! หวังว่านี่จะช่วยคนอื่นได้

person Howard    schedule 03.06.2015