我有一个bash脚本如下
#!/bin/bash
PROCESS=ps aux | grep [f]fmpeg -c
if [[ $PROCESS -gt 0 ]]
then
echo "process is more then 0"
fi
但是,当我进行检查时,即使发现的结果大于0,我的if语句也应该是真的,但不会被启动。我不确定比较有什么问题。
答案 0 :(得分:1)
你想要这个:
if ps aux | grep [f]fmpeg
then
....
如果没有匹配的行,这样做是为了跳过grep中“失败”的“if”。如果您真的想要进行计数,可以修改原始代码:
PROCESS=$(ps aux | grep [f]fmpeg -c)
答案 1 :(得分:1)
返回tic执行命令并将结果赋值给PROCESS变量
但是您正在检查流程的数量,因此wc -l
找到行的总数。
#!/bin/bash
PROCESS=`ps aux | grep [f]fmpeg -c | wc -l`
if [[ $PROCESS -gt 0 ]]
then
echo "process is more then 0"
fi
答案 2 :(得分:0)
试试这个:
if [ "$PROCESS" -ne "0" ]
答案 3 :(得分:0)
要从某个命令获取输出,您应该使用“`”引用,如下所示。
#!/bin/bash
PROCESS=`ps aux | grep [f]fmpeg -c`
if [[ $PROCESS -gt 0 ]]
then
echo "process is more then 0"
fi