2013-05-05 14 views
0

Evernote 노트의 내용을 Geeknote로 파이썬에서 실행되는 짧은 쉘 스크립트로 작성했습니다 : 나는 터미널에서 실행하면 스크립트가 잘 작동쉘 스크립트 내에서 : 파이썬 출력을 터미널에서 파일로 출력합니다. launchd에서 실행하면 "입력 스트림이 비어 있습니다"

#!/bin/bash 
/usr/bin/python /Users/me/Git/geeknote/geeknote.py find --search "Hobbies To Do" > /dev/null 
/usr/bin/python -u /Users/me/Git/geeknote/geeknote.py show "Hobbies To Do" | tee /Users/me/Programming/output.txt 

이상적으로 내가 스크립트 자체에 주기적으로 실행하고자하지만, (이 두 번째 파이썬 명령과 Output.txt의 출력을 쓴다). 그래서 .plist/LaunchAgent를 만들어 스크립트를 실행 해 보았습니다.하지만 그렇게하면 output.txt에 쓰여지는 것은 Input stream is empty ... 이유를 알 수 없습니다. 지금 내 .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>Label</key> 
    <string>com.me.geektoolcron</string> 

    <key>ProgramArguments</key> 
    <array> 
    <string>/Users/me/Programming/script.sh</string> 
    </array> 

    <key>StartInterval</key> 
    <integer>10</integer> 

    <key>RunAtLoad</key> 
    <true/> 
</dict> 
</plist> 

답변

0

당신은 echo a처럼 뭔가 번째 파이썬 명령을 교체하거나 재와 티를 교체 시도 할 수 있습니다. 이 같은 스크립트는 같은 PLIST에 나를 위해 일한 :

#!/bin/bash 

date | tee /tmp/f 

launchd에 또한 파일에 표준 출력을 지시 지원

<key>StandardOutPath</key> 
<string>/Users/me/Programming/output.txt</string> 
+0

가 재로 교체 시도, 작동하지 않았다. plist를 실행할 때 터미널에서 실행될 때 파이썬이 출력하는 내용은 캡처되지 않습니다. – nshaas