ไม่สามารถแสดงกล่องโต้ตอบ osascript ด้วย crontab

ฉันจะแสดงกล่องโต้ตอบ osascript ด้วย crontab ได้อย่างไร ฉันสามารถดำเนินการ """osascript -e 'display dialog "displaying content" ' """ ด้วย python os.system ในเทอร์มินัลได้ และแถบโต้ตอบจะปรากฏขึ้น ซึ่งหมายความว่า os.system ดำเนินการ osascript command อย่างถูกต้อง และฉันสามารถรันคำสั่ง crontab เช่น 32 10 * * * mkdir /path เพื่อสร้างโฟลเดอร์เวลา 10:32 น. ซึ่งหมายความว่า crontab ก็ทำงานได้ดีเช่นกัน อย่างไรก็ตาม เมื่อฉันรัน """osascript -e 'display dialog "displaying content" ' """ ด้วย crontab ก็ไม่มีอะไรปรากฏขึ้น ดูเหมือนว่ามีบางอย่างขัดขวางไม่ให้แถบข้อความแสดงบนหน้าจอของฉัน ฉันอยากรู้ว่าเกิดอะไรขึ้น


person Zhiliang Lyu    schedule 17.02.2019    source แหล่งที่มา


คำตอบ (2)


ด้วยเหตุผลบางอย่างสิ่งนี้ได้ผลสำหรับฉันภายใต้ Big Sur (แต่ไม่ได้ให้เส้นทางแบบเต็มไปยัง osascript เท่านั้น):

* * * * * * /usr/bin/bash; osascript -e 'display dialog "Kilroy was here!"'

person P-D    schedule 18.12.2020
comment
ปรากฎว่าคำสั่งนำหน้าด้วย /bin/zsh; ทำงานได้ดีและแม้แต่อัฒภาคเท่านั้น ; - person P-D; 21.12.2020
comment
* * * * * * ;osascript -e 'display dialog "Kilroy was here!"' ได้ผล! - person P-D; 21.12.2020
comment
หมายเหตุสุดท้าย (?): ดูเหมือนว่า crontab บน Mac OS จะใช้ 6 'ฟิลด์' เท่านั้น (โดยไม่มีปี) อันที่จริงมันทำงานในวิธีที่ง่ายที่สุดเท่าที่จะเป็นไปได้และฉันก็ถูกหลอก (ความคิดเห็นถัดไปเพื่อความชัดเจน): - person P-D; 27.12.2020

เครื่องหมายคำพูดเพิ่มเติมนั้นไม่จำเป็นหากใช้ crontab มันควรจะทำงานโดยไม่มีเครื่องหมายคำพูด คุณควรจะสามารถยืนยันสิ่งนี้ได้ด้วยการทำงานในเทอร์มินัลที่ไม่มี Python หากรันด้วยเครื่องหมายคำพูดในเทอร์มินัล จะเกิดข้อผิดพลาดขึ้น bash: osascript -e 'display dialog displaying: command not found

ลองเพิ่มบรรทัดนี้ในคำสั่ง crontab ของคุณ:

osascript -e 'display dialog "displaying content"'
person Matts    schedule 17.02.2019
comment
ใช่ ฉันสามารถดำเนินการ link ตัวเอียง ตัวหนา osascript -e 'display dialog "displaying content"' ได้โดยตรงในเทอร์มินัลและ มันทำงานได้ดี เครื่องหมายคำพูดเพิ่มเติมมีไว้สำหรับ python เพื่อรัน AppleScript โค้ด python คือ:ลิงก์ ตัวเอียง ตัวหนา import os def notify(): os.system(""" osascript -e 'display dialog "displaying content" ' """) notify() - person Zhiliang Lyu; 17.02.2019
comment
หากฉันรันโปรแกรม python ข้างต้นในเทอร์มินัลหรือ Pycharm ทุกอย่างเรียบร้อยดี แต่หากฉันรันโปรแกรมข้างต้นใน crontab แถบโต้ตอบจะไม่แสดงขึ้นมา - person Zhiliang Lyu; 17.02.2019
comment
คุณพูดถูก applescript จะไม่ทำงานจาก cron ในตอนนี้ คุณควรตรวจสอบคำตอบนี้ - person Matts; 17.02.2019