Webサイトの証明書が有効であることを確認するための簡単なスクリプトを作成しています。ただし、端末でコードを実行しようとすると、コマンドが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
これは、シェルが探しているコマンドがおそらく壊れないスペースで事前に予約されていないことを意味しopenssl
ます openssl
。
openssl
前のスペースが「一般」スペースであることを確認または削除するには、スクリプトを編集する必要があります。
バラよりこのコマンドが機能しない理由: "ps aux | grep xscreensaver"より多くの情報を持つ同様のケースの場合。