首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >错误消息- openssl:未找到命令

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

Unix & Linux用户
提问于 2019-10-04 09:19:35
回答 1查看 22.7K关注 0票数 3

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

代码语言:javascript
运行
复制
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

当我试图运行这段代码时,我会收到以下输出:

代码语言:javascript
运行
复制
./check-certificates.sh: line 6:  openssl: command not found
Certificate is expired

该代码运行,但它不承认openssl是一个有效的命令,因此它跳过了所提到的代码行,并默认输出“证书过期”。

当使用sudo apt-get install openssl时,我会收到以下消息:

代码语言:javascript
运行
复制
...
openssl is already the newest version (1.0.2g-1ubuntu4.15).
...

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

根据请求,下面是apropos openssl | grep "OpenSSL command line tool"的输出:

代码语言:javascript
运行
复制
openssl (1ssl)       - OpenSSL command line tool

locate openssl | grep /usr/bin

代码语言:javascript
运行
复制
usr/bin/openssl
EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2019-10-04 09:39:28

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

代码语言:javascript
运行
复制
./check-certificates.sh: line 6:  openssl: command not found

这意味着shell正在寻找的命令不是openssl,而是openssl,可能具有不可中断的预分段空间。

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

有关类似的实例,请参阅为什么这个命令不起作用:“ps aux \ grep xscreensaver”,并提供更多信息。

票数 6
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/545076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档