Задуманная задача представляет из себя реализацию автоматического цикла отбработки команд "запуск приложения - работа - выход из приложения".
В качестве приложения рассматривается клиент Linux appimage облака pCloud. Для его остановки по расписанию планируется использовать команду kill -15 pid_процесса (команда kill -15 срабатывает именно по pid), что соответствует "прошу процесс мягко закрыться".
При работе Linux appimage облака pCloud создаёт несколько процессов:
Поэтому при определении pid процесса pcloud получается последовательность групп цифр, например: 14682 14661 14632 14620 14616 (получена из команды pidof pcloud> ~/pcloud.txt) Примечание. Если не закрывать все автоматически открывшиеся окна, то таких процессов будет шесть, например: 15282 15254 15233 15204 15192 15188
Экспериментально установлено, что если сделать kill-15 процессу с самым меньшим из полученных значений (то есть из 1-го примера --> kill -15 14616), то задача, в принципе решена. Так как в случае дальнейшего присвоения переменной этого значения, например MYVAR=... , выполняется команда kill -15 $MYVAR и все процессы pcloud "гаснут".
Конкретный вопрос
1) может ли кто-нибудь подсказать как присвоить MYVAR самое последнее значение (14616) из последовательности групп цифр, которые в 1 строку через пробел;
2) или имеется ли способ последовательность 14682 14661 14632 14620 14616 в файле pcloud.txt преобразовать к виду "в столбик"
14682
14661
14632
14620
14616
после чего можно было бы выполнить MYVAR=`sed -n '5p' ~/pcloud.txt`
Bash: выбрать из последовательности групп цифр в строке последнюю группу
Как правильно задавать вопросы Правильно сформулированный вопрос и его грамотное оформление способствует высокой вероятности получения достаточно содержательного и по существу ответа. Общая рекомендация по составлению тем: 1. Для начала воспользуйтесь поиском форума. 2. Укажите версию ОС вместе с разрядностью. Пример: LM 19.3 x64, LM Sarah x32 3. DE. Если вопрос касается двух, то через запятую. (xfce, KDE, cinnamon, mate) 4. Какое железо. (достаточно вывод
inxi -Fxz
в спойлере (как пользоваться спойлером смотрим здесь)) или же дать ссылку на hw-probe 5. Суть. Желательно с выводом консоли, логами. 6. Скрин. Просьба указывать 2, 3 и 4 независимо от того, имеет ли это отношение к вопросу или нет. Так же не забываем об общих правилах Как пример вот
-
Автор темы - Сообщения: 2014
- Зарегистрирован: 11 июн 2017, 21:47
- Решено: 29
- Откуда: BY
- Благодарил (а): 79 раз
- Поблагодарили: 431 раз
- Контактная информация:
Bash: выбрать из последовательности групп цифр в строке последнюю группу
Решение
Перейти к ответу ➙
Простой способ выловить последнее число из ряда:
Чтобы загнать это в переменную:
Тоже самое, из файла:
echo 14682 14661 14632 14620 14616 | grep -o [0-9]*$
Чтобы загнать это в переменную:
MYVAR=`echo 14682 14661 14632 14620 14616 | grep -o [0-9]*$`
Тоже самое, из файла:
MYVAR=`cat ~/pcloud.txt | grep -o [0-9]*$`
(подразумевается, что в файле именно строчка а не столбик).Перейти к ответу ➙
-
- Сообщения: 4504
- Зарегистрирован: 21 июн 2017, 18:09
- Решено: 99
- Благодарил (а): 51 раз
- Поблагодарили: 1992 раза
- Контактная информация:
Bash: выбрать из последовательности групп цифр в строке последнюю группу
Простой способ выловить последнее число из ряда:
Чтобы загнать это в переменную:
Тоже самое, из файла:
echo 14682 14661 14632 14620 14616 | grep -o [0-9]*$
Чтобы загнать это в переменную:
MYVAR=`echo 14682 14661 14632 14620 14616 | grep -o [0-9]*$`
Тоже самое, из файла:
MYVAR=`cat ~/pcloud.txt | grep -o [0-9]*$`
(подразумевается, что в файле именно строчка а не столбик).-
- Сообщения: 10015
- Зарегистрирован: 27 авг 2016, 22:57
- Решено: 215
- Откуда: НН
- Благодарил (а): 815 раз
- Поблагодарили: 3010 раз
- Контактная информация:
Bash: выбрать из последовательности групп цифр в строке последнюю группу
еще пара вариантов навскидку
Код: Выделить всё
▶ echo 14682 14661 14632 14620 14616 | awk '{print $NF}'
14616
Код: Выделить всё
▶ echo 14682 14661 14632 14620 14616 | rev | cut -d' ' -f 1 | rev
14616
-
- Сообщения: 844
- Зарегистрирован: 12 авг 2017, 09:09
- Решено: 13
- Откуда: Ростов-на-Дону
- Благодарил (а): 29 раз
- Поблагодарили: 204 раза
- Контактная информация:
Bash: выбрать из последовательности групп цифр в строке последнюю группу
Может быть так будет проще
Код: Выделить всё
killall -s TERM pcloud
Basic (ZXSpectrum)→Ms-Dos→W95→W98→Me→XP→W7→Ubuntu 15.10→Xubuntu 16.04→Linux Mint 18.2-21.1
Контекстное меню Nemo
Сценарий вывода данных оценки ресурса диска SSD
Контекстное меню Nemo
Сценарий вывода данных оценки ресурса диска SSD
-
Автор темы - Сообщения: 2014
- Зарегистрирован: 11 июн 2017, 21:47
- Решено: 29
- Откуда: BY
- Благодарил (а): 79 раз
- Поблагодарили: 431 раз
- Контактная информация:
Bash: выбрать из последовательности групп цифр в строке последнюю группу
Благодарю всех откликнувшихся.
Все предложенные варианты приводят к решению поставленной задачи.
В связи с этим хотелось бы у модератора этой ветки форума получить консультацию, так как нахожусь в некоторой растерянности.
Полагаю, что следует отметить какое-то сообщение как решение. Я бы и slant, и Chocobo, и demonlibra отметил как "решено", т.е. установить "решено" каждому из участников обсуждения. ПО форума это позволяет сделать?
Все предложенные варианты приводят к решению поставленной задачи.
В связи с этим хотелось бы у модератора этой ветки форума получить консультацию, так как нахожусь в некоторой растерянности.
Полагаю, что следует отметить какое-то сообщение как решение. Я бы и slant, и Chocobo, и demonlibra отметил как "решено", т.е. установить "решено" каждому из участников обсуждения. ПО форума это позволяет сделать?
-
Автор темы - Сообщения: 2014
- Зарегистрирован: 11 июн 2017, 21:47
- Решено: 29
- Откуда: BY
- Благодарил (а): 79 раз
- Поблагодарили: 431 раз
- Контактная информация:
Bash: выбрать из последовательности групп цифр в строке последнюю группу
Хотя ставлю "решено" первому сообщению, хотелось бы подчеркнуть, что изначально хотел "решено" поставить всем. 3-е сообщение содержит в себе команду выключения всех процессов pcloud. При просмотре в диспетчере задач хода выключений клиента от стандартного (от разработчиков) до предложенных вариантов сделано предположение, что основным, всё-таки, является процесс с наименьшим pid, соответствующему pCloud Drive, а все остальные являются или дочерними или зависимыми. Поэтому выключение по наименьшему значению pid показалось более корректным. Может быть cli версия (https://github.com/pcloudcom/console-client) клиента pCloud и свободна от наличия нескольких процессов, но "хотелка" хотела именно GUI.
Ещё раз всех благодарю, высказанное взято "в копилку рецептов".
Ещё раз всех благодарю, высказанное взято "в копилку рецептов".
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей