Задания крона и буферы обмена

Pbpaste, кажется, не работает как ожидалось, когда я выполняю его от задания крона.

У меня есть applescript, который открывает файл PDF в Предварительном просмотре и отправляет ему команду копии и затем закрывает Предварительный просмотр. Затем я хотел бы вставить это в файл, pbpaste> pasta.txt. Это все работает отлично, когда я выполняю его как сам.

Однако, если я поместил его как задачу в crontab-e, это действительно работает правильно и даже создало выходной файл, но содержание пусто. Это - как будто независимо от того, что контекст, в котором происходит выполнение, имеет другое понятие буфера обмена.

Мой crontab похож на это:

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

И yeah.script похож на это:

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"

Ожидаемый результат состоит в том, что pasta.txt содержал бы файл PDF в тексте и именно это происходит, если я запускаю этот скрипт вручную. Однако, если крон выполняет его, pasta.txt создается, но ничего не содержит (размер 0).

Я вижу, что копия определенно успешна, когда выполнено от крона, поскольку я могу вставить его сам позже. Это просто, что pbpaste, кажется, не работает от крона.

1
задан 10.12.2010, 02:30

1 ответ

Почему не угробили сценарий и используют рабочий процесс Automator (или скомпилированное приложение), так как у них есть специализированный метод для извлечения текста от PDFs в текстовый файл.

enter image description here

Вы также могли бы попытаться угробить Крон и запустить Ваш скрипт через LaunchAgent. Пример:

~/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>
1
ответ дан 17.12.2019, 00:29

Теги

Похожие вопросы