在下面的代码中,即使 pdfinfo 以 1
退出,在 echo 中 $?
也会打印 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}"
最佳答案
!
反转退出状态,因此零值是正确的。例如:
$ 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
关于Bash,检查命令返回然后回显它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23996236/