2013-05-05 43 views
0

我編寫了一個簡短的shell腳本,將Evernote筆記的內容寫入Geeknote的文件中,該文件在python下運行:內部shell腳本:將Python輸出寫入文件從終端運行,「輸入流爲空」當從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

試圖用重定向替代,沒有工作。看起來,當從終端運行時,任何python輸出在穿過plist時都不會被捕獲 – nshaas 2013-05-07 19:46:26

相關問題