我正在创建一个清除 Google Chrome 缓存的脚本。但是,我想检查 Chrome 是否打开,如果打开,则不运行代码,但如果没有打开,则它将执行代码。我可以看到进程名称是 Google Chrome,但代码不起作用。
这就是我到目前为止所做的。我究竟做错了什么?
SERVICE='Google Chrome'
if ps ax | grep -v grep | grep $SERVICE
then
RUNS THE CODE
else
echo "PLEASE CLOSE GOOGLE CHROME"
fi
任何帮助,将不胜感激 :)
答案1
正如 @StéphaneChazelas 提到的,您可以使用pgrep
- 从手册页:
pgrep 命令搜索正在运行的系统上的进程表,并打印与命令行上给出的条件相匹配的所有进程的进程 ID。
SERVICE='Google Chrome'
if pgrep -xq -- "${SERVICE}"; then
echo running
else
echo not running
fi
答案2
您需要引用“$SERVICE”:
SERVICE='Google Chrome'
if ps ax | grep -v grep | grep "${SERVICE}" &> /dev/null; then
echo running
else
echo not running
fi