【发布时间】:2012-01-02 07:12:13
【问题描述】:
我有一个 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文件时遇到错误后强制关闭latex引擎?
【问题讨论】:
-
你为什么使用
eval?正如 bash 常见问题解答所说 “eval 是 evil 的拼写错误,如果答案是 eval,那么你问错了问题” -
有些情况下
eval是合适的;目前还不清楚这是其中之一。