2017-05-01 19 views
0

から私は、LinuxでのコマンドラインでPDFにLaTeX文書をコンパイルするには、次のスクリプトを使用しています:それは作品コンパイルラテックス、Linuxのbashスクリプト

#! /bin/bash 
NAME=`echo "$1" | cut -d'.' -f1` 
pdflatex -file-line-error -halt-on-error $NAME.tex 
xdg-open $NAME.pdf 

、しかしにpdflatexによってコンパイルでエラー、のxdg-オープンラインがあったとしても以前に作成したpdfファイルを表示して表示します。

最後の行に条件文を追加するにはどうしたらいいですか?すなわち、xdg-openは前の行のコンパイルが成功した場合にのみ実行する必要がありますか?それ以外の場合は、エラーメッセージが表示され、pdfファイルを表示しないでください。 pdflatexはbashスクリプトでチェックできるエラーコードを返しますか?ご協力いただきありがとうございます。

答えて

0
#! /bin/bash 
NAME=`echo "$1" | cut -d'.' -f1` 
pdflatex -file-line-error -halt-on-error $NAME.tex && xdg-open $NAME.pdf 

このトリックを行う必要があります。

確かに、サブシェルで他のコマンドをラップのいずれかで動作します:

pdflatex -file-line-error -halt-on-error $NAME.tex && (xdg-open $NAME.pdf; command2; command 3) 

やif文でリターンコードを評価することにより:

編集はコメントで質問に対処するため

if [[ $? -eq 0 ]]; then 
    xdg-open $NAME.pdf 
    command2 
    command3 
fi 
+0

エラーがある場合でも他のステートメントを追加する必要がある場合はどうすればよいですか? if-then-elseブロックを作成できますか? – rnso

+0

パーフェクト。私が気づいていなかった2つの新しい方法。 – rnso

+0

喜んで助けになる。 =} – tink

関連する問題