Как переписать скрипт
-
Здравствуйте уважаемые форумчане.
Помогите спортировать скрипт. Сразу прошу не гнобить ибо я не программист.Есть простой код который отлично отрабатывает в ubuntu на bash
#!/bin/bash str1=`ping -q -c 5 10.1.1.254` str2="0%" if [[ $str1 != *$str2* ]] then echo "loss" else echo "norm" fi
Который не отрабатывается в sh
#!/bin/bash на #!/bin/sh я менял, и не только.
Пробовал самыми разными вариантами вплоть до строк
ping -c 5 10.1.1.254 &> /dev/null && echo "norm" || echo "loss"
но дело в самом синтаксисе сравненияПочему-то возвращается всегда одинаковое значение.
Пингается хост или нет, всё равно sh говорит что переменные не совпадают.Подскажите как написать правильно. Запускается скрипт из cron'a
-
-
ping -c 5 10.1.1.254 &> /dev/null && echo "norm" || echo "loss"
ping -c 5 10.1.1.254 > /dev/null && echo "norm" || echo "loss"
без амперсанда попробуйте. #!/bin/sh будет работать
Будете смеятся и удивляться но так тоже не работает)) Все время возвращает "norm", даже если вместо хоста какую-нибудь белеберду написать)
Но проблемы решил таким синтаксисом:
#!/bin/sh if ping -q -c 4 10.8.0.1 | grep ', 0.0%' >/dev/null; then код else код fi