错误消息 - openssl:未找到命令

错误消息 - openssl:未找到命令

我正在编写一个简单的脚本来检查网站的证书是否有效。但是,当我尝试在终端中运行代码时,我收到一条错误消息,指出openssl找不到该命令。这是代码:

if true | openssl s_client -connect www.google.com:443 2>/dev/null | \
  openssl x509 -noout -checkend 0; then
  echo "Certificate is not expired"
else
  echo "Certificate is expired"
fi

当我尝试运行此代码时,我收到以下输出:

./check-certificates.sh: line 6:  openssl: command not found
Certificate is expired

该代码运行,但它无法识别openssl为有效命令,因此它跳过提到这一点的代码行,并默认输出“证书已过期”。

使用时sudo apt-get install openssl我收到此消息:

...
openssl is already the newest version (1.0.2g-1ubuntu4.15).
...

所以看起来openssl已经安装成功了。我不知道如何解决这个问题 - 有人有任何想法吗?


根据要求,以下是输出apropos openssl | grep "OpenSSL command line tool"

openssl (1ssl)       - OpenSSL command line tool

locate openssl | grep /usr/bin

usr/bin/openssl

答案1

请注意错误消息中的额外空格:

./check-certificates.sh: line 6:  openssl: command not found

这意味着 shell 正在寻找的命令不是openssl,而是 openssl,可能预先预留了一个牢不可破的空格。

您需要编辑脚本以确保前面的空格openssl是“正常”空格,甚至删除它。

为什么此命令不起作用:“ps aux | grep xscreensaver”对于具有更多信息的类似实例。

相关内容