任何人都知道 Mac OS 的程序,您可以将名称传递给可执行文件和要监视的文件,以便在每次监视的文件发生更改时运行该可执行文件?
我有这样的想法:
$ fwatch /Users/foo/doc.tex /Users/foo/run-pdflatex.sh &
fwatch running. Listening for changes in /Users/foo/doc.tex.
$ echo "This aint no LaTeX" > doc.tex
$ fwatch: Change in /Users/foo/doc.tex detected. Running /Users/foo/run-pdflatex.sh...
Run Code Online (Sandbox Code Playgroud)
您可以使用launchd进行设置。具体来说,您需要使用launchd plist 中的watchpaths键来查找该文件中的更改。
这篇 AFP548 文章中提供了详尽的信息。
尽管看起来它不再处于开发阶段,Lingon是一个应用程序,它提供了一种 GUI 方式来设置这些 launchd plist 文件。
编辑:
粗略地说,这是您使用上面的示例路径所做的事情。将com.superuser.run-pdflatex.plist
以下内容命名的文件保存到~/Library/LaunchAgents
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.superuser.run-pdflatex</string>
<key>OnDemand</key>
<true/>
<key>Program</key>
<string>/Users/foo/run-pdflatex.sh</string>
<key>ProgramArguments</key>
<array>
<string>run-pdflatex.sh</string>
</array>
<key>WatchPaths</key>
<array>
<string>/Users/foo/doc.tex</string>
</array>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)
然后您将launchctl load ~/Library/LaunchAgents/com.superuser.run-pdflatex.plist
在终端中输入以加载您的文件监视守护程序。
以上未经测试,但这是总体思路。
归档时间: |
|
查看次数: |
7922 次 |
最近记录: |