这个简单的脚本 - 检查进程是否正在运行,然后发送电子邮件,如果不是 - 工作正常:
#!/bin/bash
if pgrep -f "ghost.py" > /dev/null
then
echo "Running" > /dev/null
else
echo "Looks like ghost.py stopped" | mail -s "ghost.py down" shaney.jones@gmail.com
fi
但是,我尝试在那里检查两个脚本的OR运算符失败了:
#!/bin/bash
if [ pgrep -f "ghost.py" ] || [ pgrep -f "ghost2.py" ] > /dev/null
then
echo "Running" > /dev/null
else
echo "Looks like a script stopped" | mail -s "Script down" shaney.jones@gmail.com
fi
错误只是说' -bash:[: - f:二元运算符预期'
答案 0 :(得分:0)
删除括号,因为它完全是另一个命令(通常等同于test
):
if pgrep -f "ghost.py" || pgrep -f "ghost2.py" > /dev/null
then
# Your stuff
有关help test
命令的详细信息,请参阅man test
和[
。