0

我编写了一个简短的 shell 脚本,用 Geeknote 将 Evernote 笔记的内容写入一个文件,该文件在 python 下运行:

#!/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

当我从终端运行该脚本时(它将第二个 python 命令的输出写入 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>
4

1 回答 1

0

您可以尝试用类似的东西替换第二个 python 命令echo a或用重定向替换 tee 。像这样的脚本使用相同的 plist 对我有用:

#!/bin/bash

date | tee /tmp/f

launchd 还支持将标准输出定向到文件:

<key>StandardOutPath</key>
<string>/Users/me/Programming/output.txt</string>
于 2013-05-06T09:17:23.247 回答