将变量设置为curl输出时,bash脚本退出

时间:2019-01-18 20:16:08

标签: bash function variables curl

尝试创建一个功能来检查网页上的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命令也会将其从脚本中删除,因此它不会将输出设置为会引起麻烦的变量。

1 个答案:

答案 0 :(得分:0)

set -e在用于调试的主脚本中:

set -euox pipefail

注释掉,现在已排序。干杯!