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 ]

첫 번째 줄의 선행 공백을 제거합니다.

관련 정보