Wort unerwartet (erwartet „dann“) im Bash-Skript

Wort unerwartet (erwartet „dann“) im Bash-Skript

Hallo, das ist mein Skript.

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

Ich erhalte diesen Fehler

Syntaxfehler: Wort unerwartet (erwartet wurde „dann“)

Was soll ich machen?

Danke!

Antwort1

In bashdieser Zeile:

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

sollte sein

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

Auch diese Zeile kann wie folgt optimiert werden:

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

und entfernen Sie auch die führenden Leerzeichen in der ersten Zeile

verwandte Informationen