1

Как видите, я настроил простой скрипт для ping google(8.8.8.8), который должен ответить "Good Ping"

if [ "ping -c 1 8.8.8.8 | grep 64 | cut -c 1-2" == '64' ];  then echo "Good Ping"; fi

Но он никогда не отвечает эхом

В то же время я могу запустить:

ping -c 1 8.8.8.8 | grep 64 | cut -c 1-2

Это решает до «64» без проблем

Я не понимаю, что верхний скрипт никогда не напечатает "Good Ping", кто-то может объяснить?

1 ответ1

3

Строка ping -c 1 8.8.8.8 | grep 64 | cut -c 1-2 никогда не равен 64, но это то, что вы проверяете. Если вы хотите проверить команду, используйте подстановку команд:

if [ $(ping -c 1 8.8.8.8 | grep 64 | cut -c 1-2) == 64 ] ; then
    echo Good Ping
fi

`...` можно использовать вместо $(...) .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .