안녕하세요, 제 스크립트입니다.
#!/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 ]
첫 번째 줄의 선행 공백을 제거합니다.