1
간단한 bash 스크립트를 작성하려고합니다. (방금 bash 스크립팅 작업을 시작했습니다.) 스크립트가 간단합니다. rsyslog 서비스에 문제가 있으며 수시로 사망합니다. 서비스가 다시 시작되도록하려면 스크립트를 다시 작성해야합니다. 지금까지는 내 조건이 정상인지 확인하고 싶지만 오류가 발생하는 것 같습니다. 너 나 한테 조언 해 줄 수있어?내 bash 스크립트를 작성하려고합니다.
#!/bin/bash
a="dead"
b="running"
while i in $(/etc/init.d/rsyslog status | grep -o 'running\|dead');
do
if
[ "$a" == "$i" ];
then
echo "service rsyslog is dead "
if
[ "$b" == "$i" ];
then
echo "service rsyslog is running"
else
echo "nothing to do";
fi;
done
-------------
나는 다음과 같은 구문 오류가 점점 오전 : 여기
는 스크립트입니다../rsyslogcheck.sh : 17 행 : 구문 오류가 예기치 않은 토큰 done' ./rsyslogcheck.sh: line 17:
근처는
https://www.shellcheck.net을 통해 실행하십시오. 첫 번째'if'에는 'fi'가 없습니다. –
명령문/명령을 분리하기 위해 세미콜론 (';') *과 * 개행 문자를 모두 사용할 필요는 없습니다. –
'for' 루프와'while' 루프를 혼동하는 경우도 있습니다. 'bash'에는'in '연산자가 없습니다; 'in'은'foreach'을 "철자"하기 위해 사용되는 키워드 일뿐입니다. – chepner