2017-05-01 104 views
0

我使用下面的腳本編譯LaTeX文檔爲PDF關於命令在Linux中:從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文件。

如何爲最後一行代碼添加條件語句,即僅當pdflatex在前一行中的編譯成功時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 

應該這樣做。

編輯,以解決在評論的問題:

當然,這工作要麼在子shell包裝的其他命令:

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

完美。我沒有意識到兩種新方法。 – rnso

+0

很酷。很高興有幫助。 =} – tink