在下面的一段代码中,即使PDFIFO退出1,在回音中$?打印0。那么,它的输出是什么?

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 - bash ,检查命令返回,然后回显它,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23996236/

10-15 00:34