从shell命令定时退出

我有一个shell脚本来生成两种类型的报告。 每个报告都是通过执行Sweave脚本,然后从生成的tex文件中编译PDF生成的。

eval "R CMD Sweave Weekly.Rnw"
eval "pdflatex Weekly.tex"
eval "R CMD Sweave Daily.Rnw"
eval "pdflatex Daily.tex"

例如,如果在执行'R CMD Sweave Weekly.Rnw'时出错,它会退出但仍然生成一个tex文件(我检查过的文件不能被停止),并且这个tex文件在pdflatex中无法正确编译,即'pdflatex Weekly .tex'命令会挂起,并且shell脚本不会移动到下一个'R CMD Sweave Daily.Rnw'。

现在,我的问题是:如果我知道某个shell命令不应该花费更多的时间(30秒),是否有办法在几分钟后(或某个任意的时间间隔)后导致从该命令(假定挂起)定时退出? 或者,在编译tex文件时遇到错误,是否有强制关闭乳胶引擎的方法?

谢谢。


使用pdflatex -halt-on-error阻止pdflatex提出问题。


请参阅R.utils::evalWithTimeoutsetTimeLimit - 这些操作可以中断命令,shell或其他方式,我相信,只要用户中断了超时,并且该命令可以被用户中断。


或者,如果从R CMD check调用该pdflatex,并且您不知道如何将参数传递给pdflatex,并且您正在使用Windows,则可以使用以下替代方法:

  • 开始 - >程序 - > MikTex 2.9->维护(管理员) - >设置(管理员)
  • 接着 :

  • 点击刷新FNDB
  • 点击更新格式
  • 更改将缺失的软件包即时安装No
  • 这应该解决R CMD检查似乎在“检查重新构建的vignette PDF文件...”或“检查PDF版本的手册...”问题上挂起错误。

    链接地址: http://www.djcxy.com/p/33437.html

    上一篇: Timed exit from a shell command

    下一篇: More efficient R / Sweave / TeXShop work