이건 내 스크립트야
#! /bin/sh
source=/Source/$1
destination=/Destination
folderParam=$(basename $source)
if /usr/bin/rsync -avh -r $source $destination; then
cp /FolderCopyStatus/Success /Status/Success_$folderParam;
mysql -h ip -uroot -ppassword << EOF
use oct_test;
insert into Test(Name,Value,Status) values('rsync',$folderParam,'Ok');
EOF
else
cp /FolderCopyStatus/Failure /Status/Failure_$folderParam;
mysql -h ip -uroot -ppassword << EOF
use oct_test;
insert into Test(Name,Value,Status) values('rsync',$folderParam,'Fail');
EOF
fi
오류 및 경고
/FinalSync.sh: 18행: 경고: 여기서 문서는 8행에서 파일 끝으로 구분됩니다('EOF' 필요) /FinalSync.sh: 19행: 구문 오류: 예기치 않은 파일 끝
나는 간단한 것을 놓치고 있다는 것을 알고 있습니다. 쉘 스크립팅의 새로운 기능입니다.
답변1
EOF줄의 시작 부분에 배치해야 합니다. 그렇지 않으면 bash가 EOF와 일치하지 않으면 "space EOF"가 표시됩니다.