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


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

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

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

Оффлайн romero80

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Добрый день.
Есть тривиальная задача: нужен скрипт, который с периодичностью сканировал бы сеть
, считал количество хостов и если оно больше определенного значения выдавал сообщение.
если пишу i = nmap -sP 192.168.0.* | grep Host | wc -l
в ответ получаю строка 2: i: команда не найдена
Я так понимаю что переменной нельзя присвоить вывод команды просто так? а как же тогда?

Оффлайн Чистый

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 3473
  • nix - вот оно счастье...
    • Просмотр профиля
Добрый день.
Есть тривиальная задача: нужен скрипт, который с периодичностью сканировал бы сеть
, считал количество хостов и если оно больше определенного значения выдавал сообщение.
если пишу i = nmap -sP 192.168.0.* | grep Host | wc -l
в ответ получаю строка 2: i: команда не найдена
Я так понимаю что переменной нельзя присвоить вывод команды просто так? а как же тогда?
надо писать
i=`nmap -sP 192.168.0.* | grep Host | wc -`

перед и после "=" не должно быть пробелов
Тестовый репозиторий kdeNeur ppa:devcode/kdeneur
各々が死ぬことをどのように決定する

Оффлайн Mogidin

  • Участник
  • *
  • Сообщений: 193
    • Просмотр профиля
    • Mogidin.Local.Blog
и кавычки это не апострофы, а черточки на кнопке с тильдой (с буквой Ё)
Ubuntu 10.04

Оффлайн Чистый

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 3473
  • nix - вот оно счастье...
    • Просмотр профиля
и кавычки это не апострофы, а черточки на кнопке с тильдой (с буквой Ё)
это упустил, хотя в коде написал на автомате спс за замечание :)
Тестовый репозиторий kdeNeur ppa:devcode/kdeneur
各々が死ぬことをどのように決定する

Оффлайн romero80

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Спасибо. буду знать. Все работает.

udp: не. не работает :( не хочу из-за пустякового вопроса создавать новую тему, спрошу тут
#!/bin/bash
i=`nmap -sP 192.168.0.* | grep Host | wc -l`
const=100
if [ "$i" > "$const" ]
then
notify-send alarm!
date >> alarm.txt
fi

exit 0
какое я бы условие не написал, команды notify-send alarm! date >> alarm.txt выполняются. ЧЯНТ?
« Последнее редактирование: 16 Ноября 2010, 02:38:33 от sanb »

Оффлайн Molibden

  • Участник
  • *
  • Сообщений: 184
    • Просмотр профиля
notify-send 'alarm!'  - в одинарные кавычки
`date` >> alarm.txt - черточки на кнопке с тильдой (с буквой Ё)
Arithmetic Comparisons
-lt    <
-gt    >
-le    <=
-ge    >=
-eq    ==
-ne    !=
if [ "$i" -gt "$const" ] ?
Попробуй: espeak "Full net - $i users"
« Последнее редактирование: 16 Ноября 2010, 10:00:42 от sanb »

Оффлайн romero80

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Цитировать
if [ "$i" -gt "$const" ]
спасибо. это оно.
Цитировать
espeak "Full net - $i users"
ээ. как я понял это для оповещения? нет, спасибо, это уже лишнее, я люблю за компом под музыку сидеть.

Оффлайн wl

  • Старожил
  • *
  • Сообщений: 1393
    • Просмотр профиля
ээ. как я понял это для оповещения? нет, спасибо, это уже лишнее, я люблю за компом под музыку сидеть.

Можно notify-send - пузырь с оповещением вылезет.
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, "Гамлет", вольный перевод)

 

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