Есть ли что-то, что вы можете ввести в терминал, чтобы он запускал команду, если запущена определенная программа? Например, if <Libre office is running> then sudo pkill <Libre ofice>
.
Правка 1: Итак, я хочу сделать в терминале оператор if, который запускается, если программа работает, а если нет, то ничего не делает или делает что-то еще.
"то, что я хочу сделать, делают, если оператор в терминале, который работает, если программа работает и если это не он, ничего не делает или делает что-то еще"
, Чтобы определить, работает ли программа данный ее имя, используйте pgrep
. К dosomething, если текстовой процессор LibreOffice работает:
pgrep soffice.bin >/dev/null && do_something
Точно так же, чтобы сделать что-то, если текстовой процессор LibreOffice не выполнение:
pgrep soffice.bin >/dev/null || do_something
Далее, можно использовать эти два в комбинации:
pgrep soffice.bin && do_one_thing || do_another
Или, если вещи становятся более сложными, использование if
оператор:
if pgrep soffice.bin
then
# command is running
do_one_thing
do_one_thing2
else
# command is not running
do_another
do_another2
fi
вышеупомянутая работа, потому что pgrep
, точно так же, как grep
, устанавливает полезный код выхода. Если процесс найден, он возвращается с кодом выхода нуля (который оболочка интерпретирует как логичная верный). В противном случае это возвращается с одним (оболочка интерпретирует любой ненулевой код выхода для значения лжи).
Для обнаружения всех программ, которые в настоящее время работают (и следовательно что имя использовать в качестве аргумента pgrep
) работайте ps ax