检查进程是否正在运行

chr*_*ley 6 linux bash grep process

我正在尝试检查进程是否正在运行.如果它正在运行,我想要一个'OK'的返回值,如果不是返回值'Not OK'.如果这是正确的术语,我只能使用'ps'而不附加任何其他参数(例如ps -ef).我的代码是:

if ps | grep file; then  echo 'OK'; else  echo 'NO'; fi
Run Code Online (Sandbox Code Playgroud)

这个问题是它没有搜索确切的进程并且总是返回'OK',我不想要显示所有信息我只想知道文件是否存在.

tan*_*ens 10

您的代码总是返回'OK',因为grep在进程列表中找到自己('grep file'包含单词'file').修复是做一个`grep -e [f] ile'(-e用于正则表达式),它找不到自己.


use*_*own 7

grep用于解决实际问题:

ps -C file
Run Code Online (Sandbox Code Playgroud)

避免grep完全使用的问题.