解释下这个awk正则表达式

check=`ps -aef |grep ora_pmon_orcl |grep -v grep |awk '{print $2}'`while [ $check ]do sleep 3 check=`ps -aef |grep ora_pmon_orcl |grep -v grep |awk '{print $2}'`done
最新回答
落花终究无情ゞ

2024-11-27 11:45:46

ps -aef |grep ora_pmon_orcl |grep -v grep |awk '{print $2}

这一句,是在进程中过滤出 ora_pmon_rocl ,grep -v grep 就是不包含grep 命令本身这一进程, 然后把结果管道给awk, 让awk 打印第二列(进程号PID),并把结果赋值给变量check。
下面的while循环语句,就是如果变量check为真,也就是有ora_pmon_rocl的PID存在,那么执行循环体 sleep 3, check=`...` ,就是暂停3秒,又重复以上的动作。

所以,这段shell的作用,就是每隔3秒就检查一下 ora_pmon_rocl 进程是不是alive。