私は2種類のレポートを生成するシェルスクリプトを持っています。各レポートは、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 Weekly.tex'コマンドがハングし、シェルスクリプトが次の 'R CMD Sweave Daily.Rnw'に移動しません。
今、私の質問:特定のシェルコマンドが30秒以上かかるべきでないことが分かっている場合、そのコマンドからのタイムアウトを誘発する方法がありますか(数分後に)任意の時間経過)?別の方法として、texファイルをコンパイルするときにエラーが発生した後にラテックスエンジンを強制的にシャットダウンする方法はありますか?
ありがとうございました。
なぜあなたは 'eval'を使用していますか? bash faqが言っているように* "evalは悪のスペルミスです。答えがevalなら間違った質問をしています" * – SiegeX
'eval'が適切なコンテキストがあります。これが彼らの1つであることははっきりしていません。 –
[コマンドラインコマンドの重複可能性のある一定時間後にコマンドを自動殺す](http://stackoverflow.com/questions/601543/command-line-command-to-auto-kill-a-command-時間の後に) –