我想将 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