如果程序正在运行,则执行某些操作

如果程序正在运行,则执行某些操作

您可以在终端中输入一些东西,以便当某个程序正在运行时它会运行一个命令?例如,if <Libre office is running> then sudo pkill <Libre ofice>

编辑 1:所以我想要做的是在终端中创建一个 if 语句,如果程序正在运行则运行,如果程序未运行则不执行任何操作,或者执行其他操作。

答案1

“我想要做的是在终端中创建一个 if 语句,如果程序正在运行,则运行该语句,如果程序未运行,则不执行任何操作,否则执行其他操作”

要根据程序名称确定程序是否正在运行,请使用pgrep。如果 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,设置了一个有用的退出代码。如果找到进程,它将返回退出代码零(shell 将其解释为逻辑真)。如果没有找到,它将返回一(shell 将任何非零退出代码解释为假)。

要找出当前正在运行的所有程序(以及要使用什么名称作为 的参数pgrep),请运行ps ax

相关内容