Navigation

    Netgate Discussion Forum
    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search

    Как переписать скрипт

    Russian
    2
    3
    551
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • C
      chieftech last edited by

      Здравствуйте уважаемые форумчане.
      Помогите спортировать скрипт. Сразу прошу не гнобить ибо я не программист.

      Есть простой код который отлично отрабатывает в 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

      1 Reply Last reply Reply Quote 0
      • H
        httpxss last edited by

        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 будет работать

        1 Reply Last reply Reply Quote 0
        • C
          chieftech last edited by

          @httpxss:

          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
          
          1 Reply Last reply Reply Quote 0
          • First post
            Last post

          Products

          • Platform Overview
          • TNSR
          • pfSense
          • Appliances

          Services

          • Training
          • Professional Services

          Support

          • Subscription Plans
          • Contact Support
          • Product Lifecycle
          • Documentation

          News

          • Media Coverage
          • Press
          • Events

          Resources

          • Blog
          • FAQ
          • Find a Partner
          • Resource Library
          • Security Information

          Company

          • About Us
          • Careers
          • Partners
          • Contact Us
          • Legal
          Our Mission

          We provide leading-edge network security at a fair price - regardless of organizational size or network sophistication. We believe that an open-source security model offers disruptive pricing along with the agility required to quickly address emerging threats.

          Subscribe to our Newsletter

          Product information, software announcements, and special offers. See our newsletter archive to sign up for future newsletters and to read past announcements.

          © 2021 Rubicon Communications, LLC | Privacy Policy