Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: как присвоить переменной значение команды  (Прочитано 3634 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн alex25

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
есть команда
ping -c 1 mailhost.comcor.ru | grep PING |awk '{print $3}'|awk '{$0=substr($0, 2,length($0)-2);print$0}'
которая дает значение 212,45,6,252 (ip адрес хоста mailhost.comcor.ru)
подскажите как в скрипте присвоить переменной это значение?

Оффлайн Karl500

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2267
    • Просмотр профиля
Re: как присвоить переменной значение команды
« Ответ #1 : 29 Сентября 2011, 14:01:26 »
a=$(ping -c 1 mailhost.comcor.ru | grep PING |awk '{print $3}'|awk '{$0=substr($0, 2,length($0)-2);print$0}')
echo $a

izamoo

  • Гость
Re: как присвоить переменной значение команды
« Ответ #2 : 29 Сентября 2011, 14:06:49 »
или так:
а=`ping -c 1 mailhost.comcor.ru | grep PING |awk '{print $3}'|awk '{$0=substr($0, 2,length($0)-2);print$0}'`

Оффлайн censor

  • Старожил
  • *
  • Сообщений: 1126
    • Просмотр профиля
Re: как присвоить переменной значение команды
« Ответ #3 : 29 Сентября 2011, 14:17:44 »
или так:
а=`ping -c 1 mailhost.comcor.ru | grep PING |awk '{print $3}'|awk '{$0=substr($0, 2,length($0)-2);print$0}'`
это устаревший вариант, предпочтительней и читабельней в скриптах использовать конструкцию $() вместо ``

izamoo

  • Гость
Re: как присвоить переменной значение команды
« Ответ #4 : 29 Сентября 2011, 14:20:12 »
или так:
а=`ping -c 1 mailhost.comcor.ru | grep PING |awk '{print $3}'|awk '{$0=substr($0, 2,length($0)-2);print$0}'`
это устаревший вариант, предпочтительней и читабельней в скриптах использовать конструкцию $() вместо ``
наверное вы правы ;)

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
Re: как присвоить переменной значение команды
« Ответ #5 : 29 Сентября 2011, 15:48:46 »
это устаревший вариант, предпочтительней и читабельней в скриптах использовать конструкцию $() вместо ``
А можно пруфлинк?
Тут другая точка зрения.
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

Оффлайн БТР

  • Заслуженный пользователь
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 6293
    • Просмотр профиля
Re: как присвоить переменной значение команды
« Ответ #6 : 29 Сентября 2011, 16:02:53 »
Тут другая точка зрения.

Цитировать
The $(cmd) notation is better since it as a definite begin and end. This makes nesting commands easier (you'd have to do escaping if you used backticks).
 
 If your shell (e.g. bash) supports using $(cmd), then use it.  If you are worried about portability and want to make sure your scripts will run on the old Bourne Shell... use backticks.
???

Оффлайн censor

  • Старожил
  • *
  • Сообщений: 1126
    • Просмотр профиля
Re: как присвоить переменной значение команды
« Ответ #7 : 29 Сентября 2011, 16:31:06 »
есть команда
ping -c 1 mailhost.comcor.ru | grep PING |awk '{print $3}'|awk '{$0=substr($0, 2,length($0)-2);print$0}'
которая дает значение 212,45,6,252 (ip адрес хоста mailhost.comcor.ru)
подскажите как в скрипте присвоить переменной это значение?
не проще для получения адреса хоста заюзать
dig +short yandex.ru
dig +short mailhost.comcor.ru
« Последнее редактирование: 29 Сентября 2011, 16:42:20 от censor »

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: как присвоить переменной значение команды
« Ответ #8 : 29 Сентября 2011, 17:52:29 »
censor, всю идею на корню зарубил. нельзя же вот так вот ломать веру людям
а вообще есть команда host =)

Оффлайн censor

  • Старожил
  • *
  • Сообщений: 1126
    • Просмотр профиля
Re: как присвоить переменной значение команды
« Ответ #9 : 29 Сентября 2011, 18:52:36 »
абажаю Linux, одну задачу можно решить туевой хучей способов (:

 

Страница сгенерирована за 0.018 секунд. Запросов: 21.