palavra inesperada (esperando "então") no script bash

palavra inesperada (esperando "então") no script bash

Olá, este é o meu roteiro.

#!/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

Estou recebendo este erro

Erro de sintaxe: palavra inesperada (esperando "então")

O que devo fazer?

Obrigado!

Responder1

Nesta bashlinha:

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

deveria estar

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

Além disso, esta linha pode ser otimizada assim:

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

e também remova os espaços iniciais na primeira linha

informação relacionada