[…! = ""]
сравнивает левый сторону со строкой, содержащей один пробел. […! = ""]
сравнивает левую часть с пустой строкой. В программировании оболочки есть странности и подводные камни, но этот конкретный случай очевиден.
'ping google.com -c 4 | grep time '
- это буквальная 32-символьная строка. Вы, вероятно, хотели использовать вывод команды, то есть подстановку команды . Вы можете использовать для этого обратные кавычки (вместо используемых вами форвардных кавычек) или долларовые скобки, которые более читабельны и менее подвержены ошибкам в некоторых сложных случаях.В любом случае, вам нужно заключить все в двойные кавычки, иначе результат подстановки команды будет разбит на слова и дальнейшая мерзость .
if [ "$(ping google.com -c 4 | grep time)" != "" ]; then …
Все это довольно окольный, хрупкий способ проверки возможности подключения. Вместо этого используйте статус возврата из ping
.Вероятно, достаточно одного пакета, и вы должны указать довольно небольшой тайм-аут на случай, если сеть не работает. Pinging google.com
проверяет, работают ли и IP-соединение, и DNS. Вы можете выполнить ping 8.8.8.8
, чтобы проверить, работает ли соединение IPv4 (8.8.8.8 - это сервер, запущенный Google).
if ping -q -c 1 -W 1 8.8.8.8 >/dev/null; then
echo "The network is up"
else
echo "The network is down"
fi
См. Также Сценарии оболочки: правильный способ проверки подключения к Интернету?
мы должны указать правильное имя пакета. Сначала проверьте, какая версия php установлена.
rpm -qa php*
проверьте установленный пакет и удалите его.
yum remove rh-php56
или
rpm -Uvh --nodeps php-<version>.rpm