“tex file.tex | dvips | ps2pdf”的正确形式是什么?

“tex file.tex | dvips | ps2pdf”的正确形式是什么?

我想将 3 个命令简化为一个,但我不断收到错误消息。

tex | dvips | ps2pdf file.tex

或者可能

tex file.tex | dvips | ps2pdf

然后divps说没有文件。或者我可以尝试

tex file.tex > dvips > ps2pdf

然后我确实得到了file.dvi但没有得到处理dvips。以这种方式猜测是危险的,而且我显然不理解>and|运算符。

运行所有 3 个命令的正确方法是什么?事实上,这是 TeX 并不重要。

答案1

输出文件的名称始终是原始名称,但扩展名已更改(除非您使用命令开关指定其他内容),因此您可以执行此操作而不是管道。

tex file.tex; dvips file.dvi; ps2pdf file.ps

这会依次执行命令。我认为 tex 命令没有任何方法可以输出其处理结果,stdout因此您无法使用它进行管道传输。

编辑:

根据 Jeff 的建议,这是一个更好的方法,因为只有前一个命令返回成功的退出状态(即状态 0)时,才会执行其余命令。

tex file.tex && dvips file.dvi && ps2pdf file.ps

相关内容