当出现错误时,似乎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
答案 0 :(得分:2)
openssl ran 8 2>/tmp/err
if [ -s /tmp/err ]
then
echo fail
else
echo ok
fi