스크립트 실행 중 예기치 않은 파일 끝 오류가 발생했습니다.

스크립트 실행 중 예기치 않은 파일 끝 오류가 발생했습니다.

누군가 이 간단한 스크립트를 디버깅하는 데 도움을 줄 수 있나요? 지금 2시간째 노력 중인데 제대로 작동하지 않는 것 같습니다.

#!/bin/bash

echo "Search for MMSC or WAP connectivity errors"

sftpErrorCount=$(tail -100 3_ERRORs_log.txt | grep "MMSC_Upload2" | grep "Fail to copy"| awk '{print $1 " " $2" " $3" " $4}'| wc -l)

if [ "$sftpErrorCount" -gt 0 ]
then
sftpErrorDate=$(tail -100 3_ERRORs_log.txt | grep "MMSC_Upload2" | grep "Fail to copy"| awk '{print $1 " " $2" " $3" " $4}'| tail -1)
echo "Error found at around $sftpErrorDate please check FTP logs"

else
echo "No errors found"

스크립트를 실행하면 오류가 발생합니다.

$ sh test_script.sh
Search for MMSC or WAP connectivity errors
test_script.sh: line 14: syntax error: unexpected end of file

답변1

if 문을 단어로 끝내야 합니다 fi.

#!/bin/bash

echo "Search for MMSC or WAP connectivity errors"

sftpErrorCount=$(tail -100 3_ERRORs_log.txt | grep "MMSC_Upload2" |
   grep "Fail to copy"| awk '{print $1 " " $2" " $3" " $4}'| wc -l)

if [ "$sftpErrorCount" -gt 0 ] ; then
    sftpErrorDate=$(tail -100 3_ERRORs_log.txt | grep "MMSC_Upload2" |
      grep "Fail to copy"| awk '{print $1 " " $2" " $3" " $4}'| tail -1)
    echo "Error found at around $sftpErrorDate please check FTP logs"
else
    echo "No errors found"
fi
# ^ This closes the block.

또한 스크립트에 몇 가지 스타일을 변경했습니다. 들여쓰기를 사용하면 이러한 오류를 더 쉽게 발견할 수 있습니다.

관련 정보