2017-02-07 6 views
1

Я использую sphinx для документации. и использовали make html и сделали latexpdf через скрипт bash. при запуске сценария bash и при запуске html он показывает ERROR в первом файле после источников Reading.Ошибка улова Sphinx при чтении источников

make clean 
+ make clean 
rm -rf _build/* 
make html 
+ make html 
sphinx-build -b html -d _build/doctrees . _build/html 
Running Sphinx v1.3b3 
making output directory... 
loading pickled environment... not yet created 
building [mo]: targets for 0 po files that are out of date 
building [html]: targets for 2 source files that are out of date 
updating environment: 2 added, 0 changed, 0 removed 
reading sources... [100%] index 
/home/sphinx/Inder.rst:12:WARNING: Bullet list ends without a blank line; unexpected unindent. 
/home/sphinx/Inder.rst:12: ERROR: Document may not end with a transition. 
looking for now-outdated files... none found 
pickling environment... done 
checking consistency... done 
preparing documents... done 
writing output... [100%] index     

Как я могу уловить эту ошибку в сценарии bash или отправить ее другой переменной. Я пробовал grep ERROR с make html, но он дает пустое.

+0

'Grep это out' как в просто скрыть от показа в' stdout'? – Inian

+0

Пожалуйста, взгляните на [Как создать минимальный, полный и проверенный пример] (http://stackoverflow.com/help/mcve). – Cyrus

+0

Я имел в виду использовать что-то вроде этого - RESULT = make html | grep ERROR. , чтобы я мог хранить его в переменной и проверять переменную, если она содержит ошибку. еще продолжайте. –

ответ

1

sphinx-build, вероятно, будет печатать выходные данные как на stdout, так и на stderr, поэтому вы, вероятно, захотите захватить оба потока.

Вы можете сделать это, как:

out=$(make html 2>&1) 
if grep -q 'ERROR: ' <<< "$out"; then 
    # do some error handling 
fi