palabra inesperada (esperando "entonces") en el script bash

palabra inesperada (esperando "entonces") en el script bash

Hola este es mi guión.

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

Recibo este error

Error de sintaxis: palabra inesperada (esperando "entonces")

¿Qué tengo que hacer?

¡Gracias!

Respuesta1

En bashesta línea:

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

debiera ser

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

Además, esta línea se puede optimizar así:

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

y también eliminar los espacios iniciales en la primera línea

información relacionada