"tex file.tex | dvips | ps2pdf"の正しい形式は何ですか?

"tex file.tex | dvips | ps2pdf"の正しい形式は何ですか?

3つのコマンドを1つに減らしたいのですが、エラーメッセージが表示され続けます。

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

関連情報