如果在bash脚本中执行if-then语句,请执行以下操作:
if [ "$pgrep foo_process" ] > 0; then
other foo
fi
当foo_process运行时,上面的if语句应该得到一个真实的结果,因为
返回了pidpgrep 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
答案 0 :(得分:1)
使用pgrep和-x开关解决:
icu-config