在下面的一段代码中,即使pdfinfo以1
退出,在回显中$?
也会打印0
。那么,输出的是什么,if
的退出值?
if ! pdfinfo "${NOMBRE_PDF}" 2>> /dev/null > /dev/null
then
echo "El pdf generado no es válido codigo del pdfinfo = $?" >> "${ARCHIVO_LOG}"
答案 0 :(得分:4)
!
反转退出状态,因此零值是正确的。例如:
$ false; echo $?
1
$ ! false; echo $?
0
您必须找到另一种捕获退出状态的方法:
pdfinfo … || echo …
将是一种方式。
其他方式:
# Hat tip: konsolebox
if pdfinfo "${NOMBRE_PDF}" 2>> /dev/null > /dev/null; then
:
else
echo "El pdf generado no es válido codigo del pdfinfo = $?" >> "${ARCHIVO_LOG}"; ...
fi
until pdfinfo "${NOMBRE_PDF}" 2>> /dev/null > /dev/null; do
echo "El pdf generado no es válido codigo del pdfinfo = $?" >> "${ARCHIVO_LOG}"; ...
break
done