bash 脚本中出现意外单词(需要“then”)

bash 脚本中出现意外单词(需要“then”)

你好,这是我的脚本。

#!/bin/bash
service=dmsspeechbatch-0.0.jar #(name of the service)
if (( $(ps -ef | grep -v grep | grep $service | wc -l) > 0 ))
then
echo "$service is running"
else
cd /application/TextToSpeech/dmsspeechbatch
nohup java -jar target/dmsspeechbatch-0.0.jar &
fi

我收到这个错误

语法错误:单词意外(需要“then”)

我应该怎么办?

谢谢!

答案1

bash这一行中:

if (( $(ps -ef | grep -v grep | grep $service | wc -l) > 0 ))

应该

if [ $(ps -ef | grep -v grep | grep $service | wc -l) -gt 0 ]

该行也可以这样优化:

if [ $(pgrep $service | wc -l) -gt 0 ]

并删除第一行的前导空格

相关内容