Bash: выбрать из последовательности групп цифр в строке последнюю группу
Добавлено: 18 ноя 2018, 00:09
Задуманная задача представляет из себя реализацию автоматического цикла отбработки команд "запуск приложения - работа - выход из приложения".
В качестве приложения рассматривается клиент 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`
В качестве приложения рассматривается клиент 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`