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


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Небольшой скрипт на BASH  (Прочитано 704 раз)

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

Оффлайн ivan-ch

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
    • Интернет-магазин EvE-Market.ru игры EvE Online
Небольшой скрипт на BASH
« : 25 Ноябрь 2016, 20:52:01 »
Здравствуйте уважаемые! Только начинаю осваивать линукс поэтому прошу помощи в написании скрипта.
Задача- Вывод команты pgrep -lf vmware-vmx имеет список из нескольких pid
Нужно каждый их этих pid выполнить в команде Ls -l /proc/$PID/cwd чтобы на выходе получить что-то наподобие таблицы pid- путь откуда запущен процесс vmware-vmx

пс: ну и опционально, если будет желание вот бы еще к этому скрипту приделать запрос какой pid убить- например ввел цифру 1 и первый в списке pid убит командой kill

Оффлайн bezbo

  • Старожил
  • *
  • Сообщений: 1500
    • Просмотр профиля
Re: Небольшой скрипт на BASH
« Ответ #1 : 25 Ноябрь 2016, 22:01:00 »

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Небольшой скрипт на BASH
« Ответ #2 : 25 Ноябрь 2016, 22:39:07 »
Код: (bash) [Выделить]
mapfile -t < <(
    pgrep vmware-vmx |
    sed 's|.*|/proc/&/cwd|' |
    tr \\n \\0 |
    xargs -0 ls -l
    )
select p in "${MAPFILE[@]}" ; do
    case x$p in
        x) echo Wrong number ;;
        *) p=${p#*proc/}
           kill ${p%%/*}
           break ;;
    esac
done
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн ivan-ch

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
    • Интернет-магазин EvE-Market.ru игры EvE Online
Re: Небольшой скрипт на BASH
« Ответ #3 : 26 Ноябрь 2016, 05:46:55 »
 :D Много и сильно спасибо Azure что помогли! Этот скрипт был нужен ну вот прямо сейчас, а не через неделю когда я сам бы дорос до его написания.

 

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