Cron lavori e appunti


1

Pbpaste non sembra funzionare come previsto quando lo eseguo da un lavoro cron.

Ho un applecript che apre un file PDF in Anteprima e gli invia il comando copia e poi chiude Anteprima. Quindi vorrei incollarlo in un file, pbpaste> pasta.txt. Tutto funziona alla grande, quando lo eseguo come me stesso.

Tuttavia, se lo inserisco come compito in crontab -e, viene eseguito correttamente e persino creato il file di output, ma i contenuti sono vuoti. È come se qualsiasi contesto in cui si sta svolgendo la corsa abbia un diverso concetto di clipboard.

Il mio crontab è così:

* * * * * cd /Users/bemmu/Public;osascript yeah.script

E yeah.script è così:

do shell script "open tiliote.pdf"
delay 2
tell application "Preview"
    activate
    delay 2
    tell application "System Events" to keystroke "a" using {command down}
    delay 2
    tell application "System Events" to keystroke "c" using {command down}
    delay 2
    tell application "System Events" to keystroke "q" using {command down}
    delay 2
end tell
do shell script "pbpaste > pasta.txt"

Il risultato atteso è che pasta.txt conterrà il file PDF in testo ed è quello che succede se eseguo questo script a mano. Tuttavia, se cron lo esegue, pasta.txt viene creato ma non contiene nulla (la dimensione è 0).

Vedo che la copia ha sicuramente successo quando viene eseguita da cron, poiché posso incollarla da sola in seguito. È solo che pbpaste non sembra funzionare da cron.


Quale utente utilizza cron per eseguire il tuo script? Puoi influenzarlo?
Daniel Beck

Risposte:


1

Perché non abbandonare lo script e utilizzare un flusso di lavoro di Automator (o un'app compilata) poiché hanno un metodo dedicato per l'estrazione di testo da PDF in un file di testo.

inserisci qui la descrizione dell'immagine

Potresti anche provare ad abbandonare Cron ed eseguire lo script tramite LaunchAgent. Esempio:

~ / Library / LaunchAgents / us.peelman.Terminal.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Disabled</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
    <key>Label</key>
    <string>us.peelman.TerminalLauncher</string>
    <key>ProgramArguments</key>
    <array>
        <string>/Applications/Utilities/Terminal.app/Contents/MacOS/Terminal</string>
    </array>
</dict>
</plist>
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.