【发布时间】:2017-10-09 09:34:09
【问题描述】:
早安,
上下文: 我想每分钟检查一次 python 脚本是否正在运行。在我的 cron 中,我调用了一个脚本。该脚本的目标是检查进程是否正在运行。
我的脚本:
#!/bin/bash
DIR="path/to/directory"
CMD="python3 -u $DIR/script.py -arg1 $DIR/arg1 -arg2 $DIR/arg2 -arg3 $DIR/arg3"
if [ ! $(ps aux | grep 'my_pattern' | grep -v 'color')]
then
echo "Success"
"$CMD" > /dev/null
fi
使用这个脚本,我想 grep 过程并反转 grep 以排除颜色过程。如果进程正在运行,命令 (ps aux | grep 'my_pattern' | grep -v 'color') 会返回一些东西,如果没有,该命令不会返回任何东西。
错误是 ./script.sh: line 12: [!myuser+ : Untraceable command
命令的执行并没有返回命令的结果,而是返回命令的进程号,就像我对命令执行 ps aux 一样。
如果不清楚,请询问,我很难翻译这个问题。
感谢您的回答。
编辑:我已经申请了这样的条件:
if [[ -z $(ps aux | grep 'my_pattern' | grep -v 'color') ]]
现在我没有任何错误,但它从未进入我的 if 条件。
【问题讨论】:
-
你有一个错字:
'color')]应该是'color') ]