如何在Bash中检测OpenSSL的失败

时间:2015-10-13 00:28:50

标签: bash shell openssl

当出现错误时,似乎OpenSSL不会返回退出代码。例如,run不是OpenSSL命令(应该是“rand”),但shell结果代码仍然设置为零。有没有办法在这里改变OpenSSL的行为(缺少构建自定义版本)?

例如,打印“确定”,“确定”,而不是“失败”,“确定”如预期的那样:

openssl ran 8
if [ $? -eq 0 ]; then
   echo "ok"
else
   echo "fail"
fi
openssl rand 8
if [ $? -eq 0 ]; then
   echo "ok"
else
   echo "fail"
fi

1 个答案:

答案 0 :(得分:2)

openssl ran 8 2>/tmp/err
if [ -s /tmp/err ]
then
  echo fail
else
  echo ok
fi