ksh if 语句语法

ksh if 语句语法

我有这样的if说法,每次我改变一些东西时,另一件事似乎是错误的。你能看出问题所在吗?

if [[ $(ps -ef | grep "Process" | grep -v "grep" | awk '{print $2}') = '' ]]; then
        echo "bien"
fi

我明白了launcher.sh[74]: 11927676^J15335522: syntax error

答案1

如果“Process”是固定字符串,请尝试

ps -ef | awk '/[p]rocess/ {print $2}'

获取进程ID。

如果您正在检查丢失的进程 ( ... = '' )

if ps -ef | grep -q [P]rocess
then 
   echo Process present
else
   echo Process absent
fi

您也可以看看pgrep(1)(例如man pgrep

答案2

KSH 中的比较需要使用两个等号进行。==

if [[ $(ps -ef | grep "Process" | grep -v "grep" | awk '{print $2}') == '' ]]; then
        echo "bien"
fi

相关内容