我有这样的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