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


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Bash, выполнение команд  (Прочитано 1052 раз)

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

Оффлайн Paullo

  • Автор темы
  • Новичок
  • *
  • Сообщений: 27
    • Просмотр профиля
Bash, выполнение команд
« : 06 Марта 2010, 17:58:26 »
Абсолютный новичок в программировании на этой штуке. Не знаю ваабще туда ли пишу, если что ногами не пинайте
пытаюсь написать простенький скрипт для переноса маршрутов для заданного интерфейса из таблицы main в другую.
ip route | grep eth2 выводит следующее

192.168.1.0/24 dev eth2  proto kernel  scope link  src 192.168.1.90  metric 2
169.254.0.0/16 dev eth2  scope link  metric 1000
default via 192.168.1.1 dev eth2  proto static

после добавления  | sed s/^/ip\ route\ del\ / получаю

ip route del 192.168.1.0/24 dev eth2  proto kernel  scope link  src 192.168.1.90  metric 2
ip route del 169.254.0.0/16 dev eth2  scope link  metric 1000
ip route del default via 192.168.1.1 dev eth2  proto static

Как раз то что нужно. Вопрос состоит в том, можно ли эти выполнить как-нибудь?
Пока единственное решение которое пришло в голову - записать это в файл и его потом его выполнить. Но как-то по моему некрасиво.
Заранее спасибо.

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: Bash, выполнение команд
« Ответ #1 : 06 Марта 2010, 18:25:51 »
ip route | awk '{system("ip route del "$0);}'

наверное как то так.

Оффлайн Paullo

  • Автор темы
  • Новичок
  • *
  • Сообщений: 27
    • Просмотр профиля
Re: Bash, выполнение команд
« Ответ #2 : 06 Марта 2010, 18:33:43 »
Спасибо, работает.
ещё пришёл в голову такой вариант, но это тоже наверное не красиво:
ip route | grep eth2 | sed s/^/ip\ route\ del\ / | bash

 

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