2017-05-01 2 views
0

나는 리눅스 명령 줄에서 PDF로 라텍스 문서를 컴파일하려면 다음 스크립트를 사용하고 있습니다 :컴파일 라텍스

#! /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은 pdflatex에 의한 이전 줄의 컴파일이 성공한 경우에만 실행해야합니까? 그렇지 않으면 오류 메시지가 표시되고 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

완벽합니다. 내가 알지 못했던 두 가지 새로운 방법. – rnso

+0

차가움. 도와 줘서 기뻐. =} – tink