Выход из скрипта bash при установке переменной для вывода curl - PullRequest
0 голосов
/ 18 января 2019

Попытка создать функцию для проверки наличия проблем с 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 голосов
/ 18 января 2019

set -e был в основном скрипте для отладки:

set -euox pipefail

Закомментировано, и теперь оно отсортировано. Ура! * * 1004

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...