2010-12-22 77 views
1

我需要注意一个特定的目录在osx中​​的变化,为了看看是否有文件上传,当文件是在目录里面,我想运行一个非常基本的脚本(简单地'编译')。使用pdflatex TEX文件),有什么我迄今所做的:pdflatex和shell脚本

1)launchd会监控我的目录,这是我的test.plist文件

<plist version="1.0"> 
<dict> 
    <key>Label</key> 
<string>DirMonitor</string> 
<key>ProgramArguments</key> 
<array> 
    <string>/Users/Caffeina/Desktop/test.sh</string> 
    <string>path modified</string> 
</array> 
<key>QueueDirectories</key> 
<array> 
    <string>/Users/Caffeina/Desktop/test_dir/</string> 
</array> 
</dict> 
</plist> 

2)test.sh:

#!/bin/sh 
/usr/texbin/pdflatex -interaction=nonstopmode /Users/Caffeina/Desktop/test_dir/test.tex 

3)启动显示器:

launchctl load /Users/Caffeina/Library/LaunchAgents/test.plist 

4)测试是否所有工作正常我将文件移动到受监控的目录中......但没有任何事情发生。展望控制台输出,我可以冲这错误:

logger[4155] This is pdfTeX, Version 3.1415926-1.40.11 (TeX Live 2010) 
logger[4155] restricted \write18 enabled. 
logger[4155] entering extended mode 
logger[4155] ! I can't write on file `test.log'. 
logger[4155] (Press Enter to retry, or Control-D to exit; default file extension is `.log') 
logger[4155] Please type another transcript file name 
logger[4155] ! Emergency stop 
logger[4155] ! ==> Fatal error occurred, no output PDF file produced! 
    com.apple.launchd.peruser.501[127] (logger[4155]) Exited with exit code: 1 

我不明白为什么这个错误,任何想法?

回答

0

看来你没有权限在文件`test.log'上写入。

+0

但文件test.log不存在pdflatex在此过程中创建 – Elio 2010-12-22 15:11:47

2

工作目录不正确。我猜工作目录是launchd所在的目录(你可以通过向shell脚本添加'pwd'命令来测试它)。如果你想改变,或者你可以修改你的pdflatex命令:

/usr/texbin/pdflatex -interaction=nonstopmode -output-directory=/tmp /Users/Caffeina/Desktop/test_dir/test.tex 

我加-output-directory=/tmp,我现在假设您已经阅读并写入访问到/ tmp。如果这可行,问题在于写入权限。然后,您可以四处游玩以获取正确的输出目录。你可以通过launchd或者在shell脚本中使用'cd myDir'来完成。

+0

您是对的,工作目录不正确。现在它工作正常。感谢您的帮助 – Elio 2010-12-23 09:50:16