Pgrep条件语句语法

时间:2017-10-25 22:30:31

标签: bash grep

如果在bash脚本中执行if-then语句,请执行以下操作:

if [ "$pgrep foo_process" ] > 0; then
other foo
fi

当foo_process运行时,上面的if语句应该得到一个真实的结果,因为

返回了pid
pgrep foo_process 

将大于零。但是下面的"同时"脚本,它不会检测foo_process何时停止。

#!/bin/bash
if [ "$pgrep foo_process" ] > 0; then
    while [ "$pgrep foo_process" ] > 0; do
        /home/scripts/arttst.sh
        sleep 2  
    done
else
fi
exit 4

为什么?

即使使用pgrep语法获取二进制输出(0或1),它仍然无效:

#!/bin/bash
#pgrep foo_process
if [ "$pgrep -f foo_process  &> /dev/null ; echo $?" ] = 0; then
    while [ "$pgrep -f foo_process  &> /dev/null ; echo $?" ] = 0; do
        bash /home/script/arttst.sh
        sleep 2  
    done
else
exit 4
fi
exit 4

1 个答案:

答案 0 :(得分:1)

使用pgrep和-x开关解决:

icu-config