Выход Grep Wvdial во время работы

Я хочу grep вывод из wvdial во время работы wvdial . На самом деле я хочу запустить задачу, когда модем подключен.

Я хочу сделать это следующим образом: grep string «IP-адрес», если он доступен, значит, подключен модем, а затем запустить другой сценарий оболочки для выполнения другой задачи.

Как это можно сделать возможным?

One Solution collect form web for “Выход Grep Wvdial во время работы”

Строго говоря, ответ:

Многие программы, когда они где-то загружаются, буферизуют их вывод – они пишут сразу несколько строк. Это повышает производительность, но, конечно же, ломает ваши попытки grep выхода. GNU Coreutils включает утилиту stdbuf которая часто позволяет вам это изменить. Вы хотите изменить stdout или stderr на буферизацию строки. Это может сработать – но, вероятно, это не лучшее решение.

Лучший способ:

Если вы посмотрите в /etc/ppp , вы увидите там несколько скриптов, включая /etc/ppp/ip-up . Когда появляется ссылка PPP, pppd запускает этот скрипт. По крайней мере, на Debian этот скрипт запускает все сценарии в /etc/ppp/ip-up.d/ .

Поэтому гораздо более простое решение – поместить ваш сценарий оболочки в /etc/ppp/ip-up.d/ или отредактировать (или создать, если он не существует) /etc/ppp/ip-up . Аналогично …ipv6-up , а также …-down варианты. Есть еще несколько; Подробнее см. в разделе «Скрипты» man-страницы pppd .

Имейте в виду, что вы можете просто использовать сценарий up, чтобы сигнализировать вашему скрипту (или другому), что ссылка готова – она ​​не должна сама выполнять эту работу. Например, вы можете сигнализировать с чем-то таким же простым, как kill -USR1 other-script-pid а затем использовать trap & sleep для ожидания этого сигнала. Или вы можете открыть именованный канал («fifo», например, mkfifo ) для чтения (который будет блокироваться до тех пор, пока не появится писатель), а затем сценарий up просто echo alive > /path/to/fifo . Или, может быть, откликнуть IP-адрес или другую полезную информацию. Или ваш скрипт может kill -STOP $$ , а затем ваш скрипт может kill -CONT script-pid . Есть несколько способов сделать это. (Вы даже можете изо всех сил использовать dbus.)

  • Суммируйте определенные поля данных файла журнала Apache CLF
  • ksh + удалить номер из строки
  • Безопасный переход пароля root в сценарий оболочки
  • Вывод последней даты изменения в другой файл?
  • Как написать сценарий оболочки, который запускается при входе в систему?
  • Добавить временные метки для вывода команды «top»
  • Удалить все файлы в каталоге
  • Как использовать глобальные переменные массивы в псевдонимах или функциях
  • Открыть окно терминала из сценария
  • проанализировать одно поле из массива JSON в массив bash
  • Как определить переменную оболочки равной версии Vim, установленной на данный момент?
  • Linux и Unix - лучшая ОС в мире.