我在一个bash脚本中有一个函数,如果一个进程正在运行则返回true,否则返回false。这是我函数的代码:
当我使用这个函数时,它似乎不起作用。我像这样使用它:
然而,如果我只使用以下实现,它可以正常工作:
checkProcess() {
if [ kill -s 0 $(getPid) > /dev/null 2>&1 ]; then
return 0
else
return 1
fi
}
当我使用这个函数时,它似乎不起作用。我像这样使用它:
if [ ! checkProcess ]; then
#do something, like rm file containing PID
fi
然而,如果我只使用以下实现,它可以正常工作:
if [ ! kill -s 0 $(getPid) > /dev/null 2>&1 ]; then
#do something, like rm file containing PID
fi
这是有原因的吗?我的函数返回值不正确吗?还是所有实现都错了?
$somefile
的文件是否存在,尽管您应该始终引用您的变量[ -f "$somefile" ]
。 - Tom Fenech