Цель приведенного ниже сценария - проверить конфигурацию nginx, и в случае успеха он перезапустит службу, как показано на рисунке.
#!/bin/bash
echo "checking nginx config..."
if sudo nginx -t | grep -q 'successful'; then
echo "restaring nginx..."
sudo systemctl restart nginx
fi
Когда этот скрипт выполняется, он печатает
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Однако мне интересно, почему оператор внутри оператора if не выполняется, даже если текст результата содержит «успешно»