尝试创建一个功能来检查网页上的SSL是否存在问题。在特定情况下,我们设置了curl https://domain的预期输出,包括:
curl: (60) SSL certificate problem: self signed certificate
...根据下面的代码行,我们正在使用grep来将SSL_STATUS变量设置为该行,然后我们将通过if语句进行抽取。问题在于它先设置了变量,然后无缘无故退出了脚本:
+ https_status
++ curl https://steelrain.eu
++ grep 'SSL certificate problem'
+ SSL_STATUS='curl: (60) SSL certificate problem: self signed certificate'
已经测试了这不是grep的结果,而是curl的结果,我不知道为什么(这是使用SSL_STATUS=$( curl https://${DOMAIN}
的基础)。
由于我很胖,我可能只是不了解这里的工作原理,但会得到帮助。
SSL_STATUS=$( curl https://${DOMAIN} 2>&1 | grep "SSL certificate problem" )
也许应该在前面提到过,但是将功能设置为仅运行curl命令也会将其从脚本中删除,因此它不会将输出设置为会引起麻烦的变量。
答案 0 :(得分:0)
set -e在用于调试的主脚本中:
set -euox pipefail
注释掉,现在已排序。干杯!