Secara berkala menjalankan osascript dalam skrip shell untuk menjalankan skrip Apple

Apa yang aku lakukan

Saya menjalankan skrip shell secara berkala yang memeriksa resolusi layar saya. Berdasarkan hal ini, ia akan menjalankan salah satu dari dua skrip Apple yang pada dasarnya mengubah visibilitas pada aplikasi lain (alat geek).

Masalahku

Skrip apel berfungsi dengan baik dengan sendirinya. Saya memahami bahwa osascript adalah cara memanggil skrip Apple, Karena jika saya mencoba menjalankannya secara langsung dikatakan "tidak dapat mengeksekusi file biner". Namun ketika saya menggunakan osascript $Home/path/smallscreen.scpt itu memberi saya kesalahan baru:

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.

Mungkin saya hanya salah memahami sesuatu, tetapi saya pikir sebaiknya langsung menjalankan skrip dari bagian bawah jawaban ini: https://stackoverflow.com/a/16071855/2522073

Mengklaim bahwa Anda dapat menjalankan skrip Apple seperti ini osascript /Users/USERNAME/Desktop/foo.scpt


Kode cangkang:

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

Skrip Apple Saya:

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

Saya menjalankan ini di Mac 10.10.3


person Howard    schedule 03.06.2015    source sumber
comment
Saya membaca lebih banyak tentang ini sepertinya ada hubungannya dengan 32bit vs 64bit. Masih mencoba mencari tahu.   -  person Howard    schedule 03.06.2015


Jawaban (1)


Ini memecahkan masalah saya. https://helpx.adobe.com/photoshop/kb/unit-type-conversion-error-applescript.html

Tampaknya itu adalah masalah sisi 32bit vs 64bit. Bukan masalah pengkodean! Semoga ini akhirnya membantu orang lain.

person Howard    schedule 03.06.2015