存储 openssl 的命令输出?

存储 openssl 的命令输出?

我正在编写一个脚本,试图验证证书密码。这就是我的想法。

passtest=$(openssl pkcs12 -info -in $CERTPATH -passin pass:$certpass)
if [[ $passtest == *"invalid password"* ]]; then
    NotOK
else
    Ok
fi

但是,没有为 $passtest 变量分配任何内容。这种方法适用于其他命令,但似乎 openssl 命令的输出被定向到其他地方?脚本运行时在屏幕上显示的输出。

有任何想法吗?

答案1

openssl报告错误标准错误。你必须将其重定向到标准输出第一的。这应该有效:

passtest=$(openssl pkcs12 -info -in $CERTPATH -passin pass:$certpass 2>&1)

相关内容