tidak dapat menampilkan dialog osascript dengan crontab

Bagaimana cara menampilkan dialog osascript dengan crontab? Saya cukup mengeksekusi """osascript -e 'display dialog "displaying content" ' """ dengan python os.system di terminal, dan bilah dialog akan muncul, yang berarti os.system mengeksekusi osascript command dengan benar. dan saya dapat menjalankan perintah crontab seperti 32 10 * * * mkdir /path untuk membuat folder pada pukul 10:32, yang berarti crontab juga berfungsi dengan baik. Namun, ketika saya menjalankan """osascript -e 'display dialog "displaying content" ' """ dengan crontab, tidak ada yang muncul, sepertinya ada sesuatu yang menghalangi bilah dialog untuk ditampilkan di layar saya, saya ingin tahu apa yang terjadi?


person Zhiliang Lyu    schedule 17.02.2019    source sumber


Jawaban (2)


Untuk beberapa alasan ini berhasil bagi saya di bawah Big Sur (tetapi tidak menyediakan path lengkap ke osascript saja):

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

person P-D    schedule 18.12.2020
comment
Ternyata perintah awalan dengan /bin/zsh; berfungsi dengan baik DAN BAHKAN HANYA TITIK KOLON; - person P-D; 21.12.2020
comment
* * * * * * ;osascript -e 'display dialog "Kilroy was here!"' Ini berhasil! - person P-D; 21.12.2020
comment
Catatan terakhir(?): Sepertinya crontab di Mac OS hanya menggunakan 6 'field' (tanpa tahun). Sebenarnya ini bekerja dengan cara yang paling sederhana dan saya tertipu (komentar berikutnya untuk kejelasan): - person P-D; 27.12.2020

Kutipan tambahan tidak diperlukan jika menggunakan crontab. Ini harusnya berfungsi tanpa tanda kutip. Anda seharusnya dapat mengonfirmasi hal ini dengan menjalankannya di terminal tanpa Python. Jika dijalankan dengan tanda kutip di terminal, kesalahan akan terjadi. bash: osascript -e 'display dialog displaying: command not found

Coba tambahkan baris ini ke perintah crontab Anda:

osascript -e 'display dialog "displaying content"'
person Matts    schedule 17.02.2019
comment
Ya, saya dapat langsung menjalankan link italic bold osascript -e 'display dialog "displaying content"' di terminal dan itu berfungsi dengan baik. Tanda kutip tambahan adalah agar python dapat mengeksekusi AppleScript, kode pythonnya adalah:link italic tebal import os def notify(): os.system(""" osascript -e 'display dialog "displaying content" ' """) notify() - person Zhiliang Lyu; 17.02.2019
comment
Jika saya menjalankan program python di atas di terminal atau Pycharm, semuanya baik-baik saja, namun jika saya menjalankan program di atas di crontab, bilah dialog tidak akan muncul. - person Zhiliang Lyu; 17.02.2019
comment
Anda benar, applescript tidak akan dijalankan dari cron sekarang. Anda harus memeriksa jawaban ini - person Matts; 17.02.2019