Bash 查看进程id是否存在

网上有很多文章已经写如何查看进程详情,但根据进程id判断进程是否存在的方法描述的不够简洁。

脚本示例

下面示例中的$pid 替换成实际的进程id。

result=$(ps -p $pid | awk -F' ' '{print $1}' | grep '[0-9]')

if [ $result ]; then
# 进程存在
else
# 进程不存在
fi

示例详解

通过ps -p 命令查看进程详情。如果进程存在:

ps -p 30536
PID TTY          TIME CMD
 30536 ?        00:00:00 chrome

如果进程不存在:

PID TTY          TIME CMD

然后通过awk和grep命令提出进程id。

 awk -F' ' '{print $1}' | grep '[0-9]')

将整个命令执行的结果赋值给result变量:

result=$(ps -p $pid | awk -F' ' '{print $1}' | grep '[0-9]')

$result if判断为真则表示进程存在。

发表评论